日期:2014-05-16  浏览次数:20667 次

jQuery.ajax()传值中文乱码问题

?

Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦,Jquery大大简化了我们的操作,不用考虑浏览器的诧异了。

一、$.ajax的一般格式

$.ajax({

???? type: 'POST',

???? url: url ,

??? data: data ,

??? success: success ,

??? dataType: dataType

});

具体参数不在赘述了。

项目开发中使用到了传递中文参数,直接传递时候出现了乱码,程序后端无法解析。

后来想起了使用unicode编码进行了参数传递,使用的是上述的格式进行参数传递,发现后端接受到时候,已经被做了处理,将“\”替换成了“%”,可能是jquery为了安全做了处理,不想再后端在进行处理替换了,替换可能会怕出现一些其他问题,那么该怎样解决呢,读了源码,决定换一种方式,传递参数

?

var yz=$.ajax({???
???? type:'post',???
???? url:'validatePwd2_checkPwd2?password2='+password2,???
???? cache:false,???
???? dataType:'json',???
???? success:function(data){???
????????? if( data.msg =="false" ) //服务器返回false,就将validatePassword2的值改为pwd2Error,这是异步,需要考虑返回时间???
????????? {???
?????????????? textPassword2.html("<font color='red'>业务密码不正确!</font>");???
?????????????? $("#validatePassword2").val("pwd2Error");???
?????????????? checkPassword2 = false;???
?????????????? return;???
?????????? }???
????? },???
????? error:function(){}???
});?

直接拼接到url参数中。解决问题。后端只需要将unicode转为汉子即可。

?

?