AJAX:XMLHttpRequest.status == 0

今天为了测试项目,需要写测试页面并调用网关测试一系列的项目流程,但是在用XMLHttpRequest调用网关时,发生了一件让我很懵逼的事情,XMLHttpRequest对象(以下简称xmlHttp)的status一直==false,不对应该说是xmlHttp.readyState从2跳过了3直接进入4,然后xmlHttp.status==false,xmlHttp.responseXML的值也是”“,我之前只听说过2xx,3xx,4xx和5xx,怎么会有0呢,当时的郁闷无处发泄,我也并不知道这个问题应该问谁,百度上的也都是一些2xx代表什么,3xx代表什么,4xx代表什么,我只是想取个返回值,在浏览器F12中能看到返回参数的。

下面进入正题:
最后其实发现XMLHttpRequest.status == 0(我也不知道为什么刚开始的时候会弹出false),在一篇博客中发现xmlHttp.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状态码

    而我的情况是,我用了两个IDEA一个开启了网关,一个开启了项目,在项目中调用网关接口出现的问题,网关和项目是不同的Tomcat和端口号,所以出现了跨域访问的安全问题(什么是跨域访问???em。。。我也不是很了解,还是百度一下吧),在我网关代码中并没有设置那些域名脚本可以访问,所以造成了不允许我的项目使用XMLHttpRequest访问网关的问题,最后在我网关中加入

response.setHeader("Access-Control-Allow-Origin","*");

之后就可以正常的返回报文了。

谢谢之前的博客
解决问题的博客https://blog.csdn.net/iaiti/article/details/42192659

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值