溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jQuery向webApi提交post json數(shù)據

發(fā)布時間:2020-09-18 14:15:57 來源:腳本之家 閱讀:233 作者:mrr 欄目:web開發(fā)

在頁面想webApi post json數(shù)據的時候,發(fā)現(xiàn)webapi不能直接以json的方式接受數(shù)據(注:我是沒有發(fā)現(xiàn)一個很好的方式來post json數(shù)據的);但是可以以數(shù)據結構的方式傳遞;

如下:

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

像這樣的代碼是沒有問題的;得到的是一個標準結構的數(shù)據;

但是如果改為下面的代碼,就會發(fā)現(xiàn)沒有數(shù)據

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

這樣的代碼會發(fā)現(xiàn),數(shù)據沒有傳過來,后面才發(fā)現(xiàn),原來jq的ajax傳輸數(shù)據類型有問題;傳輸?shù)臄?shù)據類型contentType的默認值為 "application/x-www-form-urlencoded"。默認值適合大多數(shù)情況。但是卻不能適應這次傳輸?shù)闹?,?nbsp;  contentType: 'application/json' 設置一下,就可以ok了;數(shù)據傳輸完全沒有問題;

$.ajax({
      type: "post",
      dataType: 'json',
      url: url,
      contentType: 'application/json',
      data: JSON.stringify(d),
      success: function (d) {
       
      }
    });

以上所述是小編給大家介紹的jQuery向webApi提交post json數(shù)據,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI