$.ajax使用总结(一):Form提交与Payload提交
http://blog.csdn.net/yiifaa/article/details/73468001
***************************************************
后端處理前端提交的數(shù)據(jù)時,既可以使用Form解析,也可以使用JSON解析Payload字符串。
Form解析可以直接從Request對象中獲取請求參數(shù),這樣對象轉(zhuǎn)換與處理相對容易,但在大片JSON數(shù)據(jù)需要提交時,可能會出現(xiàn)大量的數(shù)據(jù)拆分與處理工作,另外針對集合類型的處理,也是其比較孱弱的地方。
而Payload的優(yōu)勢是一次可以提交大量JSON字符串,但無法從Request從獲取參數(shù),也會受限于JSON解析的深度(尤其是有多層對象級聯(lián)的情況,最底層的對象幾乎無法轉(zhuǎn)換為具體類型)。
以Chrome瀏覽器為例,它們提交時的網(wǎng)絡(luò)參數(shù)截圖如下所示:
以下是Payload的提交方式:
具體到是實現(xiàn)上,$.ajax默認(rèn)的實現(xiàn)方式就是Form提交,核心在于contentType的設(shè)置上,如下:
var data = {name : 'yiifaa' }; // 提交數(shù)據(jù) $.ajax('app/', {method:'POST',// 將數(shù)據(jù)編碼為表單模式contentType:'application/x-www-form-urlencoded; charset=UTF-8',// 數(shù)據(jù)必須為JS對象,不可是字符串 data : data,success : function(datas) {console.log(datas)} })而Payload提交方式的實現(xiàn)如下:
$.ajax('app/', {// 據(jù)我測試了多次,payload只能用于POST方式method:'POST',// 數(shù)據(jù)類型必須為application/x-www-form-urlencoded之外的類型contentType:'application/json;charset=utf-8', charset=UTF-8',// 數(shù)據(jù)必須轉(zhuǎn)換為字符串data : JSON.stringify(data),success : function(datas) {console.log(datas)} })結(jié)論
Form提交與Payload雖然都能提交數(shù)據(jù),但它們的應(yīng)用場景差異較大,需要準(zhǔn)確理解它們的差異才是應(yīng)用得當(dāng)?shù)那疤帷?/p>
?
轉(zhuǎn)載于:https://www.cnblogs.com/zhao1949/p/7736288.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的$.ajax使用总结(一):Form提交与Payload提交的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线程系列5--java中的ThreadL
- 下一篇: Django 如何实现 如下 联表 JO