如何在发出 api 请求时以 JSON 格式将对象数组传递到有效负载中

How to pass an array of object into a payload in a JSON format while making a api request

我有一组这样的对象。

var arr = [
{name: 'myName', age: 25, city: 'myCity'},
{name: 'myName1', age: 25, city: 'myCity1'}
];

现在,我需要将此 arr 数组作为 JSON 对象传递到负载中。 我用的是JSON.stringify(arr)然后传数据。但它正在转换为表单数据,有效负载格式如下所示;

[{name: 'myName', age: 25, city: 'myCity'},{name: 'myName1', age: 25, city: 'myCity1'}]:

如果您注意到负载末尾有一个冒号,它似乎将我的数组作为 属性 名称转换为表单数据。你能帮我把数组作为 JSON 对象传递吗?

用于调用API方法的代码是,

{
 type: 'POST',
 method: 'POST',
 dataType: 'json',
 url: 'url of the api call',
 beforeSend: function(header, settingsData){
    Object.keys(settingsData.options).forEach(headerKey){
       headerKey.setHeader(headerKey, settingsData.options[headerKey]);
    }
    return settingsData;
 },
 disableDefaultError: true
}

was half correct.

  • 保持dataType: 'json'
  • 添加 contentType: 'application/json' 因为默认值为 'application/x-www-form-urlencoded; charset=UTF-8'
{
 type: 'POST',
 method: 'POST',
 dataType: 'json',
 contentType: 'application/json', // <- this is needed
 url: 'url of the api call',
 beforeSend: function(header, settingsData){
    Object.keys(settingsData.options).forEach(headerKey){
       headerKey.setHeader(headerKey, settingsData.options[headerKey]);
    }
    return settingsData;
 },
 disableDefaultError: true
}