ajax在ie与firfox的乱码解决

本文介绍了解决AJAX请求在不同浏览器中(IE与Firefox)遇到的字符编码不一致的问题,通过使用encodeURIComponent对传输的数据进行编码,并在服务器端正确解析UTF-8编码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天做网站时,使用ajax,传入action的编码,在ie中传入的和在firfox中传入的总是不一样,郁闷了一把。我的jsp文件保存格式是utf8,接收与响影也是设置的utf8,在ie中传入的是“gb2312”,在firfox中传入的是utf8。
结果是不知道怎么设置了。最后解决方案是:

<script type="text/javascript">
var xmlHttpRequest;
function display(name){
var url = "mapline?name="+encodeURIComponent(name);//主要在这里对汉字进行一下转换
sendRequest(url);
}
function hide(name){
if(last!=""){
document.getElementById(name).style.display="none";
}
}
function msg(text){
document.getElementById("kehu").innerHTML=text;
}
//ajax取线路数据
function createXMLHttpRequest(){
if(window.ActiveXObject){
try{
xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
}else{
xmlHttpRequest = new XMLHttpRequest();
}
}

function sendRequest(url){
createXMLHttpRequest();
xmlHttpRequest.open("get", url);
xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
xmlHttpRequest.onreadystatechange=process;
xmlHttpRequest.send(null);

}
function process(){
if(xmlHttpRequest.readyState==4){
if(xmlHttpRequest.status==200){
update();
}
}
}
function update(){
document.getElementById("kehu").innerHTML="";
var xmlmess = xmlHttpRequest.responseXML;
var lines = xmlmess.getElementsByTagName('line');
if(lines.length==0){
document.getElementById("kehu").innerHTML="<center><font style='color:red;font-weight:900' size='2' >暂无旅游线路</font></center>";
}else{
for(var i = 0;i<lines.length;i++){
var id = lines[i].getAttribute("id");
var name = lines[i].getAttribute("name");
var img = document.createElement("img");
img.setAttribute("src", "images/tel.gif");
var a = document.createElement("a");
a.setAttribute("href", "detailed?id="+id);
var tname = document.createTextNode(name);
a.appendChild(tname);
var br = document.createElement("br");
document.getElementById("kehu").appendChild(img);
document.getElementById("kehu").appendChild(a);
document.getElementById("kehu").appendChild(br);
}
}

for(i=1; i <8; i++) { //将国内游全部设为none
document.getElementById("mod"+i).className="menuNo";
document.getElementById("slidingList"+i).className="slidingList_none";
}
document.getElementById("kehu").className="slidingList";//只显示地图的这一个div

}
</script>

服务器接收入下

String name =new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值