jQuery向webApi提交post json数据
在页面想webApipostjson数据的时候,发现webapi不能直接以json的方式接受数据(注:我是没有发现一个很好的方式来postjson数据的);但是可以以数据结构的方式传递;
如下:
//js代码
vard={
Id:"1",
Name:"name",
Value:"OldValue",7};
$.ajax({
type:"post",
url:url1,
data:JSON.stringify({
pConfig:d
}),
success:function(d){
}
});
publicclassDiff
{
publicstringId{set;get;}
publicstringName{set;get;}
publicstringValue{set;get;}
}
publicDiffpost([FromBody]DiffpConfig)
{
List<DiffConfig>s=pConfig;
returns;
}
像这样的代码是没有问题的;得到的是一个标准结构的数据;
但是如果改为下面的代码,就会发现没有数据
//js代码
vard=[{
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){
}
});
publicList<Diff>post([FromBody]List<Diff>diff)
{
List<Diff>d=diff;
returnd;
}
这样的代码会发现,数据没有传过来,后面才发现,原来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提交postjson数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!