可行的傳參形式
- 鍵值對對應
- dynamic動態類型(非跨域)
- 實體類
- JObject參數(推薦)
1.鍵值對對應
這裏所說的鍵值對並非是一般的鍵值對,是指鍵爲空,值不爲空的鍵值對
前臺請求
$.ajax({
url: host + '/api/Source/TestParams',
type:"post",
data: { '': "Amon"},
success: function(a) {
console.log(a);
}
});
後臺
可以看到後臺是接收到參數了的,但是這種方式只能傳一個鍵值對參數,{'': 'Amon', '': 'male'}
這種參數是接收不到的,當然也可以把所有參數序列化爲字符串,後臺再進行反序列化,但是這種方式較爲繁瑣,所以不推薦
2.dynamic 動態類型(非跨域)
這種傳參方式在非跨域環境下可行,但是在跨域環境下,前臺請求時會出現 405 錯誤,雖然通過調整ajax請求參數會解決這個錯誤,但是後臺無法正常接收參數
前臺請求
$.ajax({
url: host + '/api/Source/TestParams',
type:"post",
contentType: 'application/json',
data: JSON.stringify({ 'name': "Amon", sex: 'male'}),
success: function(a) {
console.log(a);
}
});
後臺
當前傳參方式在非跨域環境中測試爲可以正常傳參,跨域環境暫未找到解決方法,如果有解決方法,歡迎交流
3.實體類
實體類是相對來說比較簡單的一種傳參方式,跟我們平常採用的傳參方式相似
前臺請求
$.ajax({
url: host + '/api/Source/TestParams',
type:"post",
data: { 'name': "Amon", sex: 'male'},
success: function(a) {
console.log(a);
}
});
後臺
這種傳參方式需要聲明一個實體類,所以說在改變傳參時,相應的要去更改實體類,靈活性不是很高
4.JObject 參數(推薦)
JObject傳參方式是個人比較推薦的一種方式,前臺請求傳參寫法不具迷惑性,後臺接收也較爲靈活
前臺請求
$.ajax({
url: host + '/api/Source/TestParams',
type:"post",
data: { 'name': "Amon", sex: 'male'},
success: function(a) {
console.log(a);
}
});
後臺
如果有其他的傳參方式,歡迎交流