您好,登錄后才能下訂單哦!
小編給大家分享一下如何解決jQuery.ajax向后臺傳遞數(shù)組的問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
jQuery.ajax向后臺傳遞一個數(shù)組,而在后臺接收不到該值。
前臺js方法部分代碼如下:
//創(chuàng)建一個測試數(shù)組 var boxIds = new Array(); boxIds.push(12182); boxIds.push(12183); boxIds.push(12184); //向后臺交互 $.ajax({ url: "/xxx", type: "GET", data: { "boxIds": boxIds, "boxType": 0, "time": new Date().getTime() }, success: function(data) { //do sth... } });
后臺controller代碼(SpringMVC)
@ResponseBody @RequestMapping(value = "/box/changeLock") public String changeLock(final Long[] boxIds, final int boxType) { return locker_ChangeLockService.changeLock(boxIds, boxType); }
觀察瀏覽器中發(fā)送的請求,可以發(fā)現(xiàn)參數(shù)如下:
可以看到,參數(shù)的名字為boxIds[]而不是我們所定義的boxIds,也就是說,當(dāng)傳遞數(shù)組時,會在我們的數(shù)組名稱后自動加上”[]”,所以后臺接不到。
解決辦法:
設(shè)置jQuery.ajax的tradional屬性
$.ajax({ url: "/xxx", type: "GET", data: { "boxIds": boxIds, "boxType": 0, "time": new Date().getTime() }, traditional: true,//這里設(shè)置為true success: function(data) { //do sth... } });
修改之后重新發(fā)出請求,觀察瀏覽器:
請求參數(shù)2
這次參數(shù)不帶”[]”了,并且后臺可以成功接收到該數(shù)組。
以上是“如何解決jQuery.ajax向后臺傳遞數(shù)組的問題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。