当我通过Ajax POST发送对象数组时,为什么web.api获取空值?

时间:2018-10-29 03:58:31

标签: jquery ajax asp.net-web-api

以下是我需要发送到web.api的JSON数据

var array = [{
    "FeederName": "Test Feeder 1",
    "Status": "Up",
    "FeederCode": "FDR012341",
    "TimeStamp": "10-10-2018 23:24:43"
},
{
    "FeederName": "Test Feeder 2",
    "Status": "Down",
    "FeederCode": "FDR012342",
    "TimeStamp": "10-10-2018 11:24:43"
}]

这是我编写的用于将上述JSON数据发送到某些url的代码。

$.ajax({
    type: "POST",
    url: url,
    //contentType: 'application/json',
    //contentType: "application/json; charset=utf-8",
    crossDomain: true,
    async: false,
    data: { "": array }, (or) json.stringfy(array) // I tried both, not working
    dataType: "json",
    success: function(data)
    {
        var date = new Date();
        console.log(data + date);
    }
})

我的问题是,当我将该数据发送到API时,所有值都将传递到null,但我无法获得对象数:2。请帮我解决这个问题,因为我已经两天了。谢谢。

注意:当我尝试使用postman时,它工作正常。

  

更新

  1. 内容Content
  2. 身体Body
  3. 生成的代码Generated Code

1 个答案:

答案 0 :(得分:0)

您好,请复制粘贴以下代码,然后检查。代码中可能有很多错字。

$.ajax({
                method: "POST", // this should be method instead of type
                 url: url,
                content-type: "application/json",
                crossDomain : true,
                async: false,
                data: JSON.stringify(array)
                success: function (data) {
                    var date = new Date();
                    console.log(data + date);
                }
      })
  • 您将数据声明为 aary ,并传递json.stringfy( array );
  • json.stringfy(),其中 json 应该为大写 JSON
  • 在ajax请求中,应该使用方法而不是类型

更新:将arry更改为array。