请求在 WAMP 上被阻止,但在 XAMPP 上允许 CORS

Posted

技术标签:

【中文标题】请求在 WAMP 上被阻止,但在 XAMPP 上允许 CORS【英文标题】:Request Blocked on WAMP, but CORS allowed on XAMPP 【发布时间】:2018-12-01 00:40:06 【问题描述】:

我尝试使用 WAMP 调用存储在 XAMPP 端口 8012 上的 jpg 文件,从端口 8080 发送 XHR。

我在 XAMPP 服务器上有一个 htaccess 文件,其内容如下,为了允许 CORS:

<IfModule mod_rewrite.c>
  Header add Access-Control-Allow-Origin: "*"
  Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
  Header add Access-Control-Allow-Headers: "Content-Type"

  RewriteEngine on
  RewriteBase /
</IfModule>

我什至尝试编辑配置文件httpd.conf 文件with this guide,但没有任何效果。 WAMP 发送GET 请求并收到以下错误:

跨域请求被阻止:同源策略不允许读取 http://localhost:8012/cdn_8080/video.jpg 的远程资源。 (原因:CORS 标头中缺少令牌 'access-control-allow-origin' 来自 CORS 预检通道的“Access-Control-Allow-Headers”)。

我检查了,mod_rewrite 在 xampp 上启用:

LoadModule rewrite_module modules/mod_rewrite.so

我做错了什么?

【问题讨论】:

【参考方案1】:

我解决了我自己的问题。

我的 javascript 文件包含以下几行:

xhr.setRequestHeader('Access-Control-Allow-Origin', '*');
xhr.setRequestHeader('Access-Control-Allow-Methods', 'GET,POST,OPTIONS,DELETE,PUT');
xhr.setRequestHeader('Access-Control-Allow-Headers', 'Content-Type');
// xhr.withCredentials = true;
// will return an error

这是不必要的,所以我删除了它们,现在一切正常。

【讨论】:

可以确认。不知道为什么。

以上是关于请求在 WAMP 上被阻止,但在 XAMPP 上允许 CORS的主要内容,如果未能解决你的问题,请参考以下文章

在 WAMP 中工作正常,但在 XAMPP 中不起作用

CORS 在某些目录上被阻止,但在其他目录上没有

虚拟主机因隐私错误在 Chrome 上被阻止

WAMP + XAMPP,无法访问 localhost/phpmyadmin

请求在 https 上工作,但由于 cors 而在 http 上被阻止?

XAMPP、WAMP、类似:xdebug 速度慢