jQuery向webApi提交post json数据
程序员文章站
2022-06-29 19:58:16
在页面想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数据,希望对大家有所帮助
上一篇: 使用Linux要改掉几个的命令习惯
下一篇: 皇帝沐浴不用美貌的宫女,为何还用太监呢?