在使用Ajax传递grails中的参数时,带有特殊字符(&)的参数拆分并且不能完全传递,因为我需要传递给控制器。在部门中,有特殊字符的部门的下拉列表。当我单击它拆分的部门,并且只在它通过的特殊字符之前。但是我要求所有具有特殊字符的列表名称。
var parameter = "searchPatientString="+searchPatientString+"&type="+type+" &searchPatientId="+searchPatientId+"&department="+department;
$.ajax( {
url: "${createLink(controller: 'allPatient', action:'patientDeptList')}",
type : 'post',
data : parameter,
success : function( resp ) {
if(resp=="noValue"){
$('#msg').show();
}
答案 0 :(得分:0)
你需要对&符号'&'进行编码在查询字符串中。 &符号为'%26' - 请参阅escaping ampersand in url
但是查询字符串值中的其他字符也可能存在问题,所以最好的方法不是手动连接查询字符串,而是像在此处提出的那样:Ampersand (&) character inside a value of jQuery AJAX request data option
答案 1 :(得分:0)
var parameter = "searchPatientString="+searchPatientString+"
&type="+type+"&searchPatientId="+searchPatientId+"
&department="+department;
您需要将其更改为:
data : parameter, instead of this one user as follow
data : { searchPatientString:"${searchPatientString}",
type:"${type}",searchPatientId:"${searchPatientId}",
department:"${department}"}
它将无缝地工作,你不应该关心specail字符。而且,还要注意
离。所有提及的$ {searchPatientString}都应该是你的grails varibles,