在safari下xmlhttp.responseText返回值为空,其它浏览器上都返回正常值。

卖香蕉的程序猿 2012-11-23 11:07:10
为什么其它所有的浏览器都获取到值。只有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);
}
}
}
}
...全文
282 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gwz8813 2013-12-05
  • 打赏
  • 举报
回复
谢啦,看到留言了,我去看一下~
gwz8813 2013-12-05
  • 打赏
  • 举报
回复
您好,问题解决了吗?我也遇到了这个问题,能帮忙解释一下吗。。。
Giberson1 2012-11-24
  • 打赏
  • 举报
回复
说明Safari浏览器比较傻。

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧