jq向webApi提交post json数据
2018-06-17 22:38:23来源:未知 阅读 ()
在页面想webApi post json数据的时候,发现webapi不能直接以json的方式接受数据(注:我是没有发现一个很好的方式来post json数据的);但是可以以数据结构的方式传递;
如下:
1 //js代码
var d = { 2 Id: "1", 3 Name: "name", 4 Value: "OldValue",}; 8 $.ajax({ 9 type: "post", 10 url: url1, 11 data: JSON.stringify(d), 13 14 success:function(d){ 15 16 } 17 });
1 public class Diff 2 { 3 public string Id { set; get; } 4 public string Name { set; get; } 5 public string Value { set; get; } 6 } 7 public Diff post([FromBody]Diff pConfig) 8 { 9 List<DiffConfig> s = pConfig; 10 return s; 11 }
像这样的代码是没有问题的;得到的是一个标准结构的数据;
但是如果改为下面的代码,就会发现没有数据
1 //js代码 2 var d = [{ 3 Id: "1", 4 Name: "name", 5 Value: "Value", 6 },{ 7 Id: "2", 8 Name: "name2", 9 Value: "Value2", 10 }]; 11 $.ajax({ 12 type: "post", 13 url: url1, 14 data: JSON.stringify({ 15 pConfig: d 16 }), 17 success:function(d){ 18 19 } 20 });
1 public List<Diff> post([FromBody]List<Diff> diff) 2 { 3 List<Diff> d = diff; 4 return d; 5 }
这样的代码会发现,数据没有传过来,后面才发现,原来jq的ajax传输数据类型有问题;传输的数据类型contentType的默认值为 "application/x-www-form-urlencoded"。默认值适合大多数情况。但是却不能适应这次传输的值,把 contentType: 'application/json' 设置一下,还有就是,要注意的是直接把数组通过 json.stringify 传递过去( data:JSON.stringify(d), ),而不是想上面那种画蛇添足的加上一句(data:JSON.stringify( {pConfig:d}) ),这样就可以ok了;数据传输完全没有问题;
$.ajax({ type: "post", dataType: 'json', url: url, contentType: 'application/json', data: JSON.stringify(d), success: function (d) { } });
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- HTTP: Request中的post和get区别 2019-07-24
- robots协议 2019-05-13
- day89 DjangoRsetFramework学习---restful规范,解析器组件,P 2019-04-18
- POST一下就知道:人生苦短,我用Python! 2019-04-11
- python学习(四)--POST请求 2019-04-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash