mWi*_*lis 6 javascript macos xmlhttprequest cors
我有一个非常简单的启用CORS的Node.js Web服务器在我办公室的另一台机器上运行.我设置它在端口8080上运行.
如果我发送它作为初始请求,触发预检(例如具有内容类型的请求application/json
),它将失败,但仅在非常特定的条件下:
这是我用来发送请求的代码:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://myserver.domain.com'); // NOT the real URL of course...
xhr.setRequestHeader('Content-Type', 'application/json'); // Triggers the preflight OPTIONS request.
xhr.send();
Run Code Online (Sandbox Code Playgroud)
非常简单.没有花里胡哨,但出于某种原因,如果我在Mac上运行该请求,浏览器似乎会在发送之前吞下OPTIONS请求.我没有收到服务器收到的任何迹象,浏览器控制台显示(相对无用)错误.所有三种主要浏览器(Chrome,Safari和Firefox)都显示相同的行为.
其他拥有类似Mac的同事也尝试了相同的结果,因此它似乎并不特定于我的机器.
我认为这可能是我的服务器的一个问题,因为我对一个着名的CORS启用的API服务器(即api.github.com)尝试了同样的方法,并且工作得很好.但是,我在本地针对2个完全不同的服务器应用程序运行它,结果相同.
CORS响应头看起来很好 - 正如我所说,如果我从Windows浏览器发送请求,它的工作正常.此外,如果我最初发送非预先请求的请求,后续的预检请求也可以正常工作.
我认为在"localhost"或"127.0.0.1"上运行服务器或客户端可能是一个问题,但我也使用它们的主机名运行两个结果相同.
没有涉及SSL,一切都是通过HTTP明文.
有没有人见过这种行为,特定于Mac浏览器?
找到了我自己的问题的答案.
适用于Mac的Cisco AnyConnect客户端似乎会导致CORS请求出现问题.
由此提示:计算机阻止CORS选项请求我卸载它,现在一切正常.
关于我的问题的评论者,但我没有怀疑VPN软件会导致这种问题,因为它是,你知道,没有运行.
UPDATE
显然,在没有Web Security模块的情况下重新安装它将解决问题.
归档时间: |
|
查看次数: |
1118 次 |
最近记录: |