AJAX POST,遇到“数据”字段问题

时间:2016-05-30 13:57:18

标签: javascript ajax post

我正在使用自动生成ajax和Postman 3,所以你可以判断它是否是正确的方法,但这不是我的主要问题。现在,当我像这样输入“数据”字段时,它可以正常工作

var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://baas.kinvey.com/appdata/kid_B1BHxEN7/people/",
  "method": "POST",
  "headers": {
    "authorization": "Basic Z2VzaGE6MTIzNA==",
    "content-type": "application/json",
    "cache-control": "no-cache",
    "postman-token": "8de908df-f970-524c-eb8b-d2f7f621a3ac"
  },
  "processData": false,
  "data": "{\"name\":\"Peter\",\"id\":11}"
}

$.ajax(settings).done(function (response) {
  console.log(response);
});

现在我的问题是,如何将自定义参数放在“数据”字段中。 我想要这样的东西

var arr = [{"name": "Peter", "id": 12}, {"name": "Demeter", "id": 15}];

var settings = {
    "async": true,
    "crossDomain": true,
    "url": "https://baas.kinvey.com/appdata/kid_B1BHxEN7/people/",
    "method": "POST",
    "headers": {
        "authorization": "Basic Z2VzaGE6MTIzNA==",
        "content-type": "application/json",
        "cache-control": "no-cache",
        "postman-token": "e37d3063-406d-02c3-803f-0f32666b9d70"
    },
    "processData": false,
    data: {"name": arr[0].name, "id": arr[0].id}
}

$.ajax(settings).done(function (response) {
    console.log(response);
});

当我发送此POST请求时,它会返回 400(错误请求)

2 个答案:

答案 0 :(得分:2)

jQuery不会将您的请求格式化为JSON,而只将其格式化为数据URL。你必须自己做这件事:

data: JSON.stringify({"name": arr[0].name, "id": arr[0].id})

答案 1 :(得分:1)

您需要使用JSON将字符串转换为stringify格式。以下是解释链接:

JSON.stringify()方法将JavaScript值转换为JSON字符串,如果指定了replacer函数,则可以选择替换值,或者如果指定了replacer数组,则可选地仅包括指定的属性。 / EM>

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify