Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在XMLHttpRequest中,错误标志变量在哪里?_Javascript_W3c_Xmlhttprequest - Fatal编程技术网

Javascript 在XMLHttpRequest中,错误标志变量在哪里?

Javascript 在XMLHttpRequest中,错误标志变量在哪里?,javascript,w3c,xmlhttprequest,Javascript,W3c,Xmlhttprequest,在报告中说: “完成”状态有关联的错误 指示某种类型的 网络错误或流产。可能是 正确或错误,并且具有 初始值为false 还表示“打开”状态下的“send()标志”类似 规范中提到了这一点,但IDL中没有,当我创建一个新的XMLHttpRequest时,我找不到这些“标志” 那些布尔变量在哪里 您要查找的是XMLHttpRequest.readyState属性 从您给出的规范中,您将看到所有这些“布尔”标志实际上都是数值 未发送(数字0) 打开(数字1) 收到的标题(数字2) 加载(数字3)

在报告中说:

“完成”状态有关联的错误 指示某种类型的 网络错误或流产。可能是 正确或错误,并且具有 初始值为false

还表示“打开”状态下的“send()标志”类似

规范中提到了这一点,但IDL中没有,当我创建一个新的XMLHttpRequest时,我找不到这些“标志”


那些布尔变量在哪里

您要查找的是
XMLHttpRequest.readyState
属性

从您给出的规范中,您将看到所有这些“布尔”标志实际上都是数值

  • 未发送(数字0)
  • 打开(数字1)
  • 收到的标题(数字2)
  • 加载(数字3)
  • 完成(数字4)
这些值是事件处理程序的结果。 基本上,为了得到这些值,做一些这样的事情

//In Javascript
var request = new XMLHttpRequest();
if (request) {
  request.onreadystatechange = function() { 
    if (request.readyState == 4) { //Numeric 4 means DONE

        }
   };

request.open("GET", URL + variables, true); //(true means asynchronous call, false otherwise)
request.send(""); //The function that executes sends your request to server using the XMLHttpRequest.
}
请记住,在调用
XMLHttpRequest.send()
方法(如果您决定进行异步调用)之前,请始终编写
onreadystatechange
事件。此外,异步调用将调用
XMLHttpRequest.onreadystatechange
事件侦听器,因此实现它总是至关重要的

有关这些标志的更多信息,请参阅webapps电子邮件列表,内容如下:

作者可以使用的一切都是 在Web IDL片段中表示。 除此之外的一切都代表 需要某种类型的数据实现 以这样或那样的方式保持 正确执行规范


(这是我的疑问)

我听说XHR编辑器说规范中引用的错误标志是消费者无法访问的内部实现变量


“send()”标志的处理方法也是一样。

您为什么要在这么低的级别上工作?当然jquery或类似的工具会给你更好的结果。@Byron Whitlock,jquery ajax只是ajax调用的包装器,我同意,它会给你更好的错误结果。你们都是对的,最后我会使用jquery,我甚至不需要使用那些“标志”但是我想知道底层发生了什么,尽管我最终将使用jQuery for all.+1来说明在调用send之前必须定义onreadystatechange。常见的陷阱。感谢您提供的信息,它整洁而清晰。我知道这一点,我想知道的是,如果你可以直接访问对象中的那些“标志”,我想知道的更多的是确定性而不是适用性(我知道这是一种无用的东西)。对不起,我的问题不清楚。我还写信给w3c webapps电子邮件列表,我会把它写在一个新的答案上。谢谢,我不久前写信给编辑,得到了答案,这就是你写的。很抱歉,我没有将这个答案标记为已接受的答案。