ajax在ie下的问题

slxliuxingbing 2009-12-24 04:20:39
var xmlHttp; //创建的一个全局的变量
function createxmlhttp(){
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}; //给这个全局附直
window.onload = function(){
createxmlhttp();
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState == 4)
alert(xmlHttp.responseText)
};
xmlHttp.open("GET","GetDataService?method=getProvinceByCountry&countryID=86",true)
xmlHttp.send(null);
};
//在这个以上的地方 ie ff 下都是对的了 都可以alert出来数据
//在这个以下的地方 Set方法绑定在一个按纽上 ff下可以弹出数据(不管安多少次) ie却不行 怎么办了?
function Set(){
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState == 4)
alert(xmlHttp.responseText)
};
xmlHttp.open("GET","GetDataService?method=getProvinceByCountry&countryID=86",true)
xmlHttp.send(null)
};
...全文
167 16 打赏 收藏 举报
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
浪尖赏花 2009-12-24
  • 打赏
  • 举报
回复
不是缓存的问题

我刚刚跟踪了一下状态,在open之前,状态为4,open之后,状态为1,但是后面就没有改变过了

通过xmlHttp.abort();将状态置为0,open之后为1,send后,依次2,3,4,一切正常
其实LZ加上这句也可以,而且可以防止重复提交呢,呵呵

可能是浏览器的BUG吧

xiuyouxu 2009-12-24
  • 打赏
  • 举报
回复
有缓存的话,在url后面加个时间戳...
slxliuxingbing 2009-12-24
  • 打赏
  • 举报
回复
强制停止是可以
但是这样不好吧
不知道为什么那么写不行
浪尖赏花 2009-12-24
  • 打赏
  • 举报
回复
可能是受上一次请求的影响,这样吧,在调用的时候强制停止上次请求

function Set(){
xmlHttp.abort();//停止当前请求
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState == 4)
alert(xmlHttp.responseText);
};
xmlHttp.open("GET","GetDataService?method=getProvinceByCountry&countryID=86",true);
xmlHttp.send(null);
}
slxliuxingbing 2009-12-24
  • 打赏
  • 举报
回复
恩 这是每次都重新创建一次xmlHttp吧
这样多不好啊 哈哈
听说是缓存的问题
不过还是没试出来
浪尖赏花 2009-12-24
  • 打赏
  • 举报
回复
实在不行,LZ这样吧
function Set(){
createxmlhttp();
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState == 4)
alert(xmlHttp.responseText);
};
xmlHttp.open("GET","GetDataService?method=getProvinceByCountry&countryID=86",true);
xmlHttp.send(null);
}
slxliuxingbing 2009-12-24
  • 打赏
  • 举报
回复
function Set(){
alert('xbb')
xmlHttp.onreadystatechange=function(){
alert('xxxx')
if(xmlHttp.readyState == 4)
alert(xmlHttp.responseText)
};
xmlHttp.open("GET","GetDataService?method=getProvinceByCountry&countryID=86",true)
xmlHttp.send(null)
alert('xx')
};
里面就 alert('xxxx')不能执行
xiongzhijian 2009-12-24
  • 打赏
  • 举报
回复
up
浪尖赏花 2009-12-24
  • 打赏
  • 举报
回复
function Set(){
xmlHttp.open("GET","GetDataService?method=getProvinceByCountry&countryID=86",true);
xmlHttp.send(null);
}

这样呢?
slxliuxingbing 2009-12-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lihui_shine 的回复:]
function Set(){
alert("LZ先把函数换成这个看看可不可以!");
}
[/Quote]
keyi 执行
浪尖赏花 2009-12-24
  • 打赏
  • 举报
回复
function Set(){
alert("LZ先把函数换成这个看看可不可以!");
}
xiuyouxu 2009-12-24
  • 打赏
  • 举报
回复
input不需要关闭标签
<input>
...
slxliuxingbing 2009-12-24
  • 打赏
  • 举报
回复
<input value="按牛" type="button" onclick="Set()" />
html页面就这么一个元素了
ie下不行 确切的说是ie6(别的版本不知道)
ff chrome都是可以的
-------------------------------------------------
换成其他的名字也不行 如 换成 change

为什么ff chrome下却可以了
shenzhenNBA 2009-12-24
  • 打赏
  • 举报
回复
function SetV(){
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState == 4)
alert(xmlHttp.responseText)
};
xmlHttp.open("GET","GetDataService?method=getProvinceByCountry&countryID=86",true)
xmlHttp.send(null)
};

set 可能会与关键字冲突,改一个,还有这个函数仅仅定义好象没有被调用呢,试看...
浪尖赏花 2009-12-24
  • 打赏
  • 举报
回复
LZ是怎么绑定Set函数的?贴下你的html代码
slxliuxingbing 2009-12-24
  • 打赏
  • 举报
回复
添加个高亮色
        var xmlHttp;        //创建的一个全局的变量
function createxmlhttp(){
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}; //给这个全局附直
window.onload = function(){
createxmlhttp();
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState == 4)
alert(xmlHttp.responseText)
};
xmlHttp.open("GET","GetDataService?method=getProvinceByCountry&countryID=86",true)
xmlHttp.send(null);
};
//在这个以上的地方 ie ff 下都是对的了 都可以alert出来数据
//在这个以下的地方 Set方法绑定在一个按纽上 ff下可以弹出数据(不管安多少次) ie却不行 怎么办了?
function Set(){
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState == 4)
alert(xmlHttp.responseText)
};
xmlHttp.open("GET","GetDataService?method=getProvinceByCountry&countryID=86",true)
xmlHttp.send(null)
};
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2009-12-24 04:20
社区公告
暂无公告