一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

jQuery向webApi提交post json数据

时间:2017-01-20 编辑:简简单单 来源:一聚教程网

在页面想webApi post json数据的时候,发现webapi不能直接以json的方式接受数据(注:我是没有发现一个很好的方式来post json数据的);但是可以以数据结构的方式传递;

如下:

 

 代码如下复制代码

//js代码

          vard = {

          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)

    {

      Lists = 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){

         }

        });

public Listpost([FromBody]Listdiff)

     {

       Listd = 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) {

      }

    });

 

热门栏目