您好,登錄后才能下訂單哦!
在頁面想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ù)據,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。