【问题标题】:AJAX contentType always gives an errorAJAX contentType 总是报错
【发布时间】:2017-03-26 19:19:11
【问题描述】:

所以我正在尝试使用 ajax 向 NodeJS 发送一个数组,问题是我一声明

contentType: "application/json; charset=UTF-8"

它调用了错误函数,我已经搜索了很多,但没有成功。

在服务器端检查,它甚至从来没有得到调用,只是立即返回一个错误。如果我删除 contentType,服务器会被调用,但我无法获取传入的数组。

这是我的 ajax 请求:

$.ajax({
    type: 'POST',
    url: 'http://localhost:1337/deposit?steamid=' + steamid,
    data: {arr:items},
    dataType: 'json',
    contentType: "application/json; charset=UTF-8",
    success: function(data) {
        console.log("Tradeoffer has been sent");
    },
    error: function(data) {
        alert("Failed to call bot, please inform us about this issue by DM'ing us at https://twitter.com/csgobeararms");
    }
});

还有我的服务器端:

app.post('/deposit', function(req, res) {
  console.log('Deposit request recieved, info:');
  console.log('STEAM ID: ' + req.query.steamid);
  console.log('ITEMS: ' + JSON.stringify(req.body.arr));
});

【问题讨论】:

    标签: javascript ajax node.js


    【解决方案1】:

    contentType 是你发送的数据类型,所以application/json;默认为application/x-www-form-urlencoded; charset=UTF-8

    如果你使用 application/json,你必须使用 JSON.stringify() 来发送 JSON 对象。

    JSON.stringify() 将 javascript 对象转换为 json 文本并将其存储在字符串中。

    $.ajax({
       type: 'POST',
       url: 'http://localhost:1337/deposit?steamid=' + steamid,
       data: JSON.stringify({arr:items}),
       dataType: 'json',
       contentType: "application/json; charset=UTF-8",
       success: function(data) {
          console.log("Tradeoffer has been sent");
       },
       error: function(data) {
           alert("Failed to call bot, please inform us about this issue by DM'ing us at https://twitter.com/csgobeararms");
       }
    });
    

    【讨论】:

    • 我忘了点击保存facepalm。现在我没有收到错误,但是我仍然没有在服务器端得到任何东西
    • 一个简单的错字是什么都没发生的原因,但现在我又得到了错误
    • 我不知道你的错误,但是如果你使用contentType:application/json你必须使用JSON.stringfiy()。如果你不使用contentType,你可以使用traditional:true属性。
    • 你在自己的电脑上测试过这个吗?我想知道是不是我的电脑上的错误导致了它
    猜你喜欢
    • 2018-08-06
    • 2013-01-28
    • 1970-01-01
    • 2015-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多