jQuery.ajax向后臺傳遞數(shù)組問題

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ù)如下:


[圖片上傳失敗...(image-1ec2eb-1523443241162)]


可以看到,參數(shù)的名字為boxIds[]而不是我們所定義的boxIds,也就是說,當傳遞數(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ā)出請求,觀察瀏覽器:


[圖片上傳失敗...(image-c59368-1523443241161)]


這次參數(shù)不帶”[]”了,并且后臺可以成功接收到該數(shù)組。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • <a name='html'>HTML</a> Doctype作用?標準模式與兼容模式各有什么區(qū)別? (1)、<...
    clark124閱讀 3,841評論 1 19
  • 在線閱讀 http://interview.poetries.top[http://interview.poetr...
    前端進階之旅閱讀 115,567評論 24 450
  • 主啊,賜福我所做的工 如果常常為吃什么,穿什么而憂愁,我們恐怕會自己去想各種辦法來解決,比如去找很多兼職,...
    世上的光和鹽閱讀 665評論 0 0
  • je vois que tu a vraiment amélioré ton fran?ais, je te f...
    白天不賣豆腐閱讀 125評論 0 0
  • #每天都在做重復(fù)性工作,感覺沒有成長怎么辦# 如果不用腦也不思考,大多數(shù)工作基本上做熟練以后都成了所謂“重復(fù)性工作...
    木子鈴閱讀 549評論 0 0

友情鏈接更多精彩內(nèi)容