欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jQuery向webApi提交post json数据

程序员文章站 2023-11-23 15:59:40
在页面想webapi post json数据的时候,发现webapi不能直接以json的方式接受数据(注:我是没有发现一个很好的方式来post json数据的);但是可以以...

在页面想webapi post json数据的时候,发现webapi不能直接以json的方式接受数据(注:我是没有发现一个很好的方式来post json数据的);但是可以以数据结构的方式传递;

如下:

//js代码 
          var d = {
          id: "1",
          name: "name",
          value: "oldvalue", 7         };
        $.ajax({
          type: "post",
          url: url1,
          data: json.stringify({
            pconfig: d
          }),
          success:function(d){
          }
        });
public class diff
  {
    public string id { set; get; }
    public string name { set; get; }
    public string value { set; get; }
  }
 public diff post([frombody]diff pconfig)
    {
      list<diffconfig> s = pconfig;
      return s;
    }

像这样的代码是没有问题的;得到的是一个标准结构的数据;

但是如果改为下面的代码,就会发现没有数据

//js代码 
         var d = [{
           id: "1",
           name: "name",
           value: "value",
         },{
           id: "2",
           name: "name2",
           value: "value2",
         }];
         $.ajax({
          type: "post",
          url: url1,
           data: json.stringify({
             pconfig: d
          }),
           success:function(d){
         }
        });
public list<diff> post([frombody]list<diff> diff)
     {
       list<diff> d = diff;
       return d;
     }

这样的代码会发现,数据没有传过来,后面才发现,原来jq的ajax传输数据类型有问题;传输的数据类型contenttype的默认值为 "application/x-www-form-urlencoded"。默认值适合大多数情况。但是却不能适应这次传输的值,把   contenttype: 'application/json' 设置一下,就可以ok了;数据传输完全没有问题;

$.ajax({
      type: "post",
      datatype: 'json',
      url: url,
      contenttype: 'application/json',
      data: json.stringify(d),
      success: function (d) {
       
      }
    });

以上所述是小编给大家介绍的jquery向webapi提交post json数据,希望对大家有所帮助