AJAX contentType始终给出错误

时间:2017-03-26 11:14:13

标签: javascript ajax node.js

所以我正在尝试使用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));
});

1 个答案:

答案 0 :(得分:0)

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");
   }
});