zoukankan      html  css  js  c++  java
  • AJAX问题 XMLHttpRequest.status = 0是什么含义

    在调用AJAX的时候遇到了XMLHttpRequest. status为0 的情况,http协议里可是没这个状态码的,众所周知,XMLHttpRequest. Status为HTTP请求状态码,一般为1xx-5xx,这个0是什么含义,让我觉得很好奇。

    XMLHttpRequest 对象的三有个重要的属性:

    onreadystatechange 

    存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。

    readyState

    存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。

    0: 请求未初始化

    1: 服务器连接已建立

    2: 请求已接收

    3: 请求处理中

    4: 请求已完成,且响应已就绪

    status 

    200: "OK"

    404: 未找到页面

    XMLHttpRequest status = 0 问题

    最后翻啊翻啊,找啊找啊,终于找到一个XMLHttpRequest的说明

    The status attribute must return the result of running these steps:

    status的值一定会返回运行这些步骤的结果。

    1、If the state is UNSENT or OPENED, return 0.(如果状态是UNSENT或者OPENED,返回0)
    2、If the error flag is set, return 0.(如果错误标签被设置,返回0)
    3、Return the HTTP status code.(返回HTTP状态码)

    如果在HTTP返回之前就出现上面两种情况,就出现0了。

    后来我又查阅到了,0 代表本地响应成功。

    先说两个button,一个是url是:file:///E:/test2.html,另外一个是:http://www.baidu.com。第一个button的url访问只是本地打开没有通过服务器,自己可以用Wireshark捉包。

    应该是xmlhttp自己在模拟,因为根本就没通过服务器。本地直接打开而已。OPENED了,所以status为0。

    第二个button的url访问虽然是其他域名,抓包是有的,但是,这是跨域访问了,

    虽然去访问了,应该是浏览器跨域的返回头没有允许,所以浏览器阻止,Access-Control-Allow-Origin这个属性。所以status为0。

  • 相关阅读:
    mybatis
    spring mvc
    Spring Boot2
    Spring AOP
    Spring Boot1
    Spring IOC
    Multiple_LinearRegression_Test2
    Multiple_LinearRegression_Test
    Simple_LinearRegression_Test
    写决策树时遇到的坑
  • 原文地址:https://www.cnblogs.com/ranyonsue/p/9187799.html
Copyright © 2011-2022 走看看