在页面想webApi post json数据的时候,发现webapi不能直接以json的方式接受数据(注:我是没有发现一个很好的方式来post json数据的);但是可以以数据结构的方式传递;
如下:
rush:js;">
//js代码
var d = {
Id: "1",Name: "name",Value: "OldValue",7 };
$.ajax({
type: "post",url: url1,data: JSON.stringify({
pConfig: d
}),success:function(d){
}
});
rush:js;">
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 s = pConfig;
return s;
}
但是如果改为下面的代码,就会发现没有数据
rush:js;">
//js代码
var d = [{
Id: "1",Value: "Value",},{
Id: "2",Name: "name2",Value: "Value2",}];
$.ajax({
type: "post",data: JSON.stringify({
pConfig: d
}),success:function(d){
}
});
rush:js;">
public List post([FromBody]List diff)
{
List d = diff;
return d;
}
这样的代码会发现,数据没有传过来,后面才发现,原来jq的ajax传输数据类型有问题;传输的数据类型contentType的默认值为 "application/x-www-form-urlencoded"。默认值适合大多数情况。但是却不能适应这次传输的值,把 contentType: 'application/json' 设置一下,就可以ok了;数据传输完全没有问题;
rush:js;">
$.ajax({
type: "post",dataType: 'json',url: url,contentType: 'application/json',data: JSON.stringify(d),success: function (d) {
}
});</pre>
以上所述是小编给大家介绍的jQuery向webApi提交post json数据。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。