首页 >web前端 >js教程 >尽管服务器标头正确,为什么我的本地主机 CORS 请求仍无法发送到 stackoverflow.com?

尽管服务器标头正确,为什么我的本地主机 CORS 请求仍无法发送到 stackoverflow.com?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-16 11:31:11857浏览

Why Does My Localhost CORS Request Fail to stackoverflow.com Despite Correct Server Headers?

本地主机 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn