在safari下xmlhttp.responseText返回值为空,其它浏览器上都返回正常值。
为什么其它所有的浏览器都获取到值。只有Safari返回值为空。
//创建AJAX引擎
var xmlhttp;
function createXmlhttp () {
if (window.XMLHttpRequest) {
//针对FireFox,Mozillar,Opera,Safari,IE7,IE8
xmlhttp = new XMLHttpRequest();
//针对某些特定版本的mozillar浏览器的BUG进行修正
if (xmlhttp.overrideMimeType) {
xmlhttp.overrideMimeType("text/xml");
}
}else if (window.ActiveXObject) {
//针对IE6,IE5.5,IE5
var activexName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
for (var i = 0; i < activexName.length; i++) {
try{
xmlhttp = new ActiveXObject(activexName[i]);
break;
} catch(e){
}
}
}
}
var currentCallBack = null;
//发送请求内容
function sendRequest(url,param,callback){
currentCallBack = callback;
createXmlhttp ();
try{
xmlhttp.onreadystatechange = processResponse; //回调方法
xmlhttp.open("post",$.PATH + url + ".cgi",true);
xmlhttp.setRequestHeader("content-type","application/x-www-form-urlencoded");
if(!param['mode_name']){
var str = "mode_name="+url+"&";
}else{
var str = '';
}
for(var i in param){
str += i + "=" + param[i] + "&";
}
str = str.substring(0,str.length -1);
xmlhttp.send(str);
}catch(e){
//alert(e);
}
}
function processResponse() {
if ( xmlhttp.readyState == 4 ) {
if ( xmlhttp.status == 200 || xmlhttp.status==0) {
var str = xmlhttp.responseText;
if(currentCallBack){
currentCallBack(str);
}
}
}
}