zoukankan      html  css  js  c++  java
  • 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 });
     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         }
    View Code

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

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

     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                }); 
    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: "post",
                dataType: 'json',
                url: url,
                contentType: 'application/json',
                data: JSON.stringify(d),
                success: function (d) {
                  
                }
            });
  • 相关阅读:
    使用一行Python代码从图像读取文本
    FastAI 简介
    OpenCV-Python 轮廓:更多属性 | 二十四
    Numpy和OpenCV中的图像几何变换
    从云计算到边缘计算
    OpenCV-Python 轮廓属性 | 二十三
    c# GetType()和typeof()的区别
    C# 子类父类方法同名,三种处理方式
    C# string 与 String的区别
    decimal
  • 原文地址:https://www.cnblogs.com/xiaoxiaoqiye/p/6288847.html
Copyright © 2011-2022 走看看