本地主机 CORS 标头问题
尽管使用适当的 CORS 标头配置服务器,但用户在客户端脚本中使用 localhost 作为源时遇到困难.
服务器配置
服务器使用以下标头进行设置:
Access-Control-Allow-Origin:http://localhost
客户端脚本
客户端脚本使用 XMLHttpRequest 对象提出请求'http://stackoverflow.com/'.
var xhr = new XMLHttpRequest(); xhr.onload = function() { console.log('xhr loaded'); }; xhr.open('GET', 'http://stackoverflow.com/'); xhr.send();
错误
但是,请求失败并出现以下错误:
XMLHttpRequest cannot load http://stackoverflow.com/. Origin http://localhost is not allowed by Access-Control-Allow-Origin.
解决方案
虽然服务器配置看起来正确,问题在于在客户端脚本中使用“localhost”作为源。
由于 2014 年标记为“WontFix”的错误,Chrome 不支持 localhost 进行 CORS 请求。
解决方法
要避免此问题,请使用解析为127.0.0.1,例如“localho.st”,或使用“--disable-web-security”标志启动 Chrome 以进行测试。
以上是尽管服务器标头正确,为什么我的本地主机 CORS 请求仍无法发送到 stackoverflow.com?的详细内容。更多信息请关注PHP中文网其他相关文章!