问题描述
- AJAX在火狐浏览下传输中文不起作用?
-
本人用AJAX做了个搜索下拉菜单,传输英文字符时候,AJAX获取后台数据可以前台显示,但是输入中文时候,就没有任何反应,也没有乱码,这个情况是在火狐下出现的,求高手帮助解决,谢谢。
部分代码
function createRequest() {
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = false;
}
}
}
if (!request)
alert("错误,无法请求XMLHttpRequest!");
}
解决方案
encoder两次,火狐和ie默认编码不一样
解决方案二:
类似 encodeURI(encodeURI(geturl))
解决方案三:
现在谁还在用这么原始的代码,为什么不用jquery
解决方案四:
用火狐断点调试一下,看那一步出错了。
另外我也建议用jquery的post或ajax方法
解决方案五:
encodeURIComponent编码下要发送的数据,应该是服务器端获取到乱码了,一查询导致服务器端代码出问题没有进入你的status==200的判断里面
你应该改成这样判断,不管是否出错都知道是什么问题了
if(4==xhr.readyState){
if(200==xhr.status)alert('请求成功n'+xhr.responseText);
else alert('动态页有问题,返回数据如下n'+xhr.responseText);
}
解决方案六:
中文要逆行encode,比如编码成base64
解决方案七:
看看你的页面声明是什么编码格式的
时间: 2024-09-23 05:24:11