JSON

jq向webApi交付post json数据

字号+ 作者:H5之家 来源:H5之家 2017-02-19 11:02 我要评论( )

jq向webApi提交post json数据 在页面想webApi post json数据的时候,发现webapi不能直接以json的方式接受数据(注:我是没有发现一个很好的方式来post json数据的

jq向webApi提交post json数据

    在页面想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 });

Diff 2 { Id { set; get; } Name { set; get; } Value { set; get; } 6 } 7 public Diff post([FromBody]Diff pConfig) 8 { 9 List<DiffConfig> s = pConfig; 10 return s; 11 }

View Code

像这样的代码是没有问题的;得到的是一个标准结构的数据;

但是如果改为下面的代码,就会发现没有数据

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 });

View Code

1 public List<Diff> post([FromBody]List<Diff> diff) 2 { 3 List<Diff> d = diff; 4 return d; 5 }

View Code

这样的代码会发现,数据没有传过来,后面才发现,原来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: , dataType: , url: url, contentType: , data: JSON.stringify(d), success: function (d) { } });

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 在JavaScript中将JSON的字符串解析成JSON数据格式的两种方法

    在JavaScript中将JSON的字符串解析成JSON数据格式的两种方法

    2017-02-18 18:01

  • Json数据格式的使用方法入门教程

    Json数据格式的使用方法入门教程

    2017-02-16 16:02

  • php返回json数据函数实例

    php返回json数据函数实例

    2017-02-14 11:00

  • highcharts图表实战篇:通过Ajax异步后台获取json数据中包含多

    highcharts图表实战篇:通过Ajax异步后台获取json数据中包含多

    2017-02-10 17:00

网友点评