jQuery.ajax向后臺(tái)傳遞數(shù)組問題的解決方法
今天重溫了一個(gè)問題,jQuery.ajax向后臺(tái)傳遞一個(gè)數(shù)組,而在后臺(tái)接收不到該值。
前臺(tái)js方法部分代碼如下:
//創(chuàng)建一個(gè)測(cè)試數(shù)組
var boxIds = new Array();
boxIds.push(12182);
boxIds.push(12183);
boxIds.push(12184);
//向后臺(tái)交互
$.ajax({
url: "/xxx",
type: "GET",
data: {
"boxIds": boxIds,
"boxType": 0,
"time": new Date().getTime()
},
success: function(data) {
//do sth...
}
});
后臺(tái)controller代碼(SpringMVC)
@ResponseBody
@RequestMapping(value = "/box/changeLock")
public String changeLock(final Long[] boxIds, final int boxType) {
return locker_ChangeLockService.changeLock(boxIds, boxType);
}
觀察瀏覽器中發(fā)送的請(qǐng)求,可以發(fā)現(xiàn)參數(shù)如下:

可以看到,參數(shù)的名字為boxIds[]而不是我們所定義的boxIds,也就是說,當(dāng)傳遞數(shù)組時(shí),會(huì)在我們的數(shù)組名稱后自動(dòng)加上”[]”,所以后臺(tái)接不到。
解決辦法:
設(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ā)出請(qǐng)求,觀察瀏覽器:

請(qǐng)求參數(shù)2
這次參數(shù)不帶”[]”了,并且后臺(tái)可以成功接收到該數(shù)組。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
jQuery懸停文字提示框插件jquery.tooltipster.js用法示例【附demo源碼下載】
這篇文章主要介紹了jQuery懸停文字提示框插件jquery.tooltipster.js用法,涉及jQuery文字提示框插件的引入與調(diào)用實(shí)現(xiàn)技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2016-07-07
利用jQuery的$.event.fix函數(shù)統(tǒng)一瀏覽器event事件處理
做WEB前端開發(fā)的人都知道不同的瀏覽器對(duì)事件的處理方式是有區(qū)別的。2009-12-12
jQuery實(shí)現(xiàn)百度登錄框的動(dòng)態(tài)切換效果
這篇文章主要介紹了jQuery實(shí)現(xiàn)百度登錄框的動(dòng)態(tài)切換效果,需要的朋友可以參考下2017-04-04
jQuery UI Grid 模態(tài)框中的表格實(shí)例代碼
這篇文章主要介紹了jQuery UI Grid 模態(tài)框中的表格實(shí)例代碼講解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-04-04
jQuery插件Zclip實(shí)現(xiàn)完美兼容個(gè)瀏覽器點(diǎn)擊復(fù)制內(nèi)容到剪貼板
本文將結(jié)合實(shí)例講解如何使用一款基于jQuery的插件——Zclip來實(shí)現(xiàn)復(fù)制內(nèi)容到剪貼板的功能。其實(shí)IE上有個(gè)方法可以實(shí)現(xiàn)點(diǎn)擊復(fù)制,但是由于只是IE獨(dú)有,所以我們不提倡。而Zclip是利用一個(gè)隱藏的flash文件來完成復(fù)制的功能,關(guān)鍵是它兼容當(dāng)前各主流瀏覽器。2015-04-04

