首页 > 解决方案 > 当我通过 ajax POST 发送对象数组时,为什么 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但我可以获得 no.of objects:2。请帮助我解决这个问题,我从 2 天开始就一直在苦苦挣扎。谢谢。

注意:当我尝试通过postman它工作正常。

更新

  1. 内容内容
  2. 身体身体
  3. 生成的代码生成的代码

标签: jqueryajaxasp.net-web-api

解决方案


嗨,请复制粘贴下面的代码并检查。您的代码中有很多错别字可能是问题所在。

$.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请求中应该有方法而不是类型

更新:更改为数组。


推荐阅读