日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

【JQuery】Ajax 參數(shù)為數(shù)組 的方法

作者:嚴(yán)_同學(xué) 更新時(shí)間: 2024-03-02 編程語言

背景介紹

前端頁面為HTML, 后端為Spring
html中根據(jù)多選框的值,使用ajax請求接口動(dòng)態(tài)加載其他元素的選項(xiàng)值。

代碼

		// select 下拉多選框的值
		var idCardType = $("#idCardType").val();
		// ['2075', '2077', '2078']
		$.ajax({
			url : url,
			type : "post",
			dataType : "json",
			traditional: true,
			data : {
				"idCardType" : idCardType
			},
			success : function(data) {

			},
			error : function() {
				showMessage("獲取部門信息失敗,請重試!");
			}
		});

接口:

	@RequestMapping("/url")
	@ResponseBody
	public JSONArray getTreeDataByUser(String idCardType) {
		JSONArray array = new JSONArray();
		System.out.println("idCardType:" + idCardType);
		// idCardType:2075,2077,2078
		return array;
	}

總結(jié)

traditional:是否使用傳統(tǒng)的方式淺層序列化。
數(shù)組或jQuery對象會(huì)按照name/value對進(jìn)行序列化,普通對象按照key/value對進(jìn)行序列化。
通過ajax提交數(shù)組時(shí),會(huì)自動(dòng)在所設(shè)定的參數(shù)后面增加中括號(hào):“[]”,導(dǎo)致后端spring MVC中的@RequestParam獲取不到參數(shù)。

解決方法:
ajax請求時(shí)增加:traditional: true 就可以正常提交了。原因如下:
jQuery會(huì)調(diào)用jQuery.param序列化參數(shù),jQuery.param( obj, traditional ),默認(rèn)的話,traditional為false,即jquery會(huì)深度序列化參數(shù)對象,以適應(yīng)如PHP和Ruby on Rails框架,但servelt api無法處理,我們可以通過設(shè)置traditional 為true阻止深度序列化。

如果不加 traditional: true
在這里插入圖片描述
加上 traditional: true
在這里插入圖片描述

原文鏈接:https://blog.csdn.net/shangshanling/article/details/127751076

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新