by 好大一小白
2010.5.2 12:30
这里主要解决firefox浏览器中的服务器请求失败"411Error"问题和ajax乱码问题.
首先,一般ajax代码:
function newXMLHttpRequest() {
var xmlreq = false;
if (window.XMLHttpRequest) {
xmlreq = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e1) {
try {
xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlreq = false;
}
}
}
return xmlreq;
}
function getReadyStateHandler(req, responseXmlHandler) {
return function () {
if (req.readyState == 4) {
if (req.status == 200) {
responseXmlHandler(req.responseXML);
} else {
alert("HTTP error "+req.status+": "+req.statusText);
}
}
}
}
一般调用:
var req = newXMLHttpRequest();
req.onreadystatechange = getReadyStateHandler(req, returnfunction);
req.open("POST", "action", true);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send();
注意,最后的req.send(),在ie中,这样写法是可以正常执行的,但是在firefox中却不会请求服务器.
服务器411错误,是由于写成了req.send(null);
如果没有传参数信息,
可以用get方法而不是post;
或者写成req.send(""),传一个空串即可.
firefox中ajax解析xml乱码问题:
将后台返回的xml编码设置成UTF-8编码即可.