我尝试使用Jquery post方法提交几个参数,这是我编写代码的方法。 Jquery的:
$(document).on("input",".li-add input", function() {
var input = $("#add-purposes").val();
if(input != "") {
$("#outter-d-1").load("/UniHealths/UNCManageDataDictionaryServlet?type=search #d-1", {
queryString:input,
resultUrl:"/dictionary/treatment",
resultSetName:"dictionary_conditions",
queryType:["CONDITION","SYMPTOM"]
});
} else {
$("#d-1").empty();
}
})

答案 0 :(得分:1)
从jQuery 1.4开始,
$.param()
方法序列化深层对象 递归地适应现代脚本语言和框架 例如PHP和Ruby on Rails。您可以禁用此功能 全局设置jQuery.ajaxSettings.traditional = true;
这也意味着,数组将被序列化为paramName[]
(注意最后的[]
)。
因此,在您的情况下,服务器会收到名称为queryType[]
的参数,而不是queryType
。
要更改此jQuery行为,您可以设置
发送请求前jQuery.ajaxSettings.traditional = true;
。
但要注意:
从jQuery 3.0开始,
$.param()
方法不再使用jQuery.ajaxSettings.traditional
作为默认设置并且会 默认为false
。
因此,如果你使用jQuery 3.x,你应该在你的请求的traditional
中明确设置settings
选项。
据我所知,.load()
函数不支持settings
参数,因此请改用.ajax()
。
如果要序列化数组而不将settings
添加到param名称,则traditional: true
参数应包含[]
。