AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > JavaScript

jQuery向webApi提交post json数据

51自学网 http://www.wanshiok.com
jq,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数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对wanshiok.com网站的支持!


jq,post,json  
上一篇:Javascript的this用法  下一篇:详解Html a标签中href和onclick用法、区别、优先级别