项目中遇到一个问题:用ajax来获取数据,但返回的status为0,从浏览器的打印看应该是跨域问题:
origin 'file://' has been blocked by CORS policy: Response to preflight request does not pass access control chech: No "Access-Control-Allow-Origin" header is present on the requested resource.
我用浏览器启动一个本地网页(file:///a.html),然后在js代码中用ajax来向一个远程服务器请求数据,出现的这个问题。
引用阮一峰老师的博客内容:
CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。
整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。
因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。
浏览器需要开启CORS跨域选项。
但还是没有正常访问到数据,问题还需要进一步调试。