gpt4 book ai didi

javascript - 第二次加载时 XMLHttpRequest 状态 0

转载 作者:行者123 更新时间:2023-11-28 21:15:59 26 4
gpt4 key购买 nike

当我尝试使用 XMLHttpRequest 从同一域加载一些 .txt 格式的数据时,遇到一个有趣的问题。我正在尝试加载数据,解析它然后将其存储在 localStorage

var xmlhttp;
// code for IE7+, Firefox, Chrome, Opera, Safari
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

var temp;
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
temp = xmlhttp.responseText;

}else{
alert("readyState: " + xmlhttp.readyState + "status: " + xmlhttp.status);
}
}
xmlhttp.open("GET","data/somedata.txt", false);
xmlhttp.send();

此代码仅在我清理历史记录和缓存时才有效;但是,在第二次单击同一链接时,由于某种原因,我会收到“Readystate:4,状态 0”。

这和localStorage有什么关系吗?

if (!localStorage.somedata || localStorage.somedata.count(':') !== somedata.count(':')) {
localStorage.somedata = temp;
}
window.somedata = JSON.parse(localStorage.somedata);

最佳答案

导致状态代码为零的原因有两个。

  1. 通过文件协议(protocol)进行调用。
  2. 在发出请求时,页面正在刷新/导航。

就你的情况而言,我假设它是#2。如果您使用按钮或链接进行 Ajax 调用,请确保使用 preventDefaultreturn false 取消单击操作。

关于javascript - 第二次加载时 XMLHttpRequest 状态 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7576064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com