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

學無先后,達者為師

網站首頁 編程語言 正文

【JQuery】Ajax 參數為數組 的方法

作者:嚴_同學 更新時間: 2024-03-02 編程語言

背景介紹

前端頁面為HTML, 后端為Spring
html中根據多選框的值,使用ajax請求接口動態加載其他元素的選項值。

代碼

		// 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;
	}

總結

traditional:是否使用傳統的方式淺層序列化。
數組或jQuery對象會按照name/value對進行序列化,普通對象按照key/value對進行序列化。
通過ajax提交數組時,會自動在所設定的參數后面增加中括號:“[]”,導致后端spring MVC中的@RequestParam獲取不到參數。

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

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

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

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