jQuery.ajax向后臺傳遞數(shù)組問題的解決方法
今天重溫了一個(gè)問題,jQuery.ajax向后臺傳遞一個(gè)數(shù)組,而在后臺接收不到該值。
前臺js方法部分代碼如下:
//創(chuàng)建一個(gè)測試數(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ù)組名稱后自動加上”[]”,所以后臺接不到。
解決辦法:
設(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ù)組。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
jQuery懸停文字提示框插件jquery.tooltipster.js用法示例【附demo源碼下載】
這篇文章主要介紹了jQuery懸停文字提示框插件jquery.tooltipster.js用法,涉及jQuery文字提示框插件的引入與調(diào)用實(shí)現(xiàn)技巧,非常簡單實(shí)用,需要的朋友可以參考下2016-07-07利用jQuery的$.event.fix函數(shù)統(tǒng)一瀏覽器event事件處理
做WEB前端開發(fā)的人都知道不同的瀏覽器對事件的處理方式是有區(qū)別的。2009-12-12jQuery實(shí)現(xiàn)百度登錄框的動態(tài)切換效果
這篇文章主要介紹了jQuery實(shí)現(xiàn)百度登錄框的動態(tài)切換效果,需要的朋友可以參考下2017-04-04jQuery UI Grid 模態(tài)框中的表格實(shí)例代碼
這篇文章主要介紹了jQuery UI Grid 模態(tài)框中的表格實(shí)例代碼講解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-04-04jQuery插件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