传递带有特殊字符的参数不会传递给grails

时间:2014-05-07 11:10:06

标签: jquery ajax

在使用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();
                    }

2 个答案:

答案 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,