Javascript Ajax请求3次不起作用,然后起作用

Javascript Ajax请求3次不起作用,然后起作用,javascript,ajax,javascript-events,Javascript,Ajax,Javascript Events,我的页面上有多个javascript ajax请求。现在,在一个特定的ajax调用(由onclick事件触发)中,我得到了3条背靠背的错误消息。在检查reuest.readyState时,我发现每次出现错误时,它的就绪状态分别为1、2和3,然后它就工作了(readyState=4) 下面是我向服务器发送的ajax请求: function fetch(parameter){ var myrequest=new ajaxRequest() myrequest.onreadystatechange=f

我的页面上有多个javascript ajax请求。现在,在一个特定的ajax调用(由onclick事件触发)中,我得到了3条背靠背的错误消息。在检查reuest.readyState时,我发现每次出现错误时,它的就绪状态分别为1、2和3,然后它就工作了(readyState=4)

下面是我向服务器发送的ajax请求:

function fetch(parameter){
var myrequest=new ajaxRequest()
myrequest.onreadystatechange=function(){
if (myrequest.readyState==4){    //This property is not equal to "4" for 3 calls
   if (myrequest.status==200 || window.location.href.indexOf("http")==-1){ 
       // Code to be executed for successful call
       }
   }
else{
    alert("Error in Request. Request State is: " + myrequest.readyState);
}
}

myrequest.open("GET", url, true)
myrequest.send(null)
}
触发onclick事件时,我得到的错误如下:

请求出错。请求状态为:1

请求出错。请求状态为:2

请求出错。请求状态为:3

请求可能有什么问题?

这些是XMLHTTPRequest(ajax)状态,其中:

1=>加载

2=>已加载

3=>交互式

4=>准备好了吗

第4步,ajax请求被视为已完成,可以访问返回的数据


您应该放弃
else
条件。

没有问题。Ajax请求会经历各种状态,这就是为什么您只寻找第四种状态。在该状态下,收到了响应。看见只需删除
else
@Felix King:是的,这是正确的,但我还有其他类似的请求,它们具有完全相似的结构(if-else循环),但没有传递给它们的参数。他们没有表现出这样的错误,为什么只有这一个表现出这样的行为?这完全是由于onclick事件还是由于参数或任何其他原因造成的?我不知道您的其他代码,因此我无法确定。是的,这是正确的,但我也有其他类似的请求,它们具有完全相似的结构(if-else循环),但没有传递给它们的参数。他们没有表现出这样的错误,为什么只有这一个表现出这样的行为?这完全是由于onclick事件、参数或任何其他原因造成的吗