CORS 将不会启用 MAMP localhost

CORS will not enable with MAMP localhost

我在本地机器上的 PHP 中构建了一个 RESTful Api,并且一切正常。预检请求正在发送正确的响应等,PHP 处理的一切都像梦一样工作。

但是如果我尝试访问 public 文件夹中的图像(在本例中通过 javascript 以编程方式访问),我会感到愤怒:

Access to XMLHttpRequest at 'http://localhost/tmp/avatars/user.jpg' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我在 public 根目录的 .htaccess 文件以及 MAMP Apache <Directory><VirtualHost> 指令中设置了以下内容,但它只是拒绝工作。

Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "*"

即使在最好的情况下,CORS 也是一件令人头疼的事情,但这太荒谬了。为什么这不起作用?

有什么想法吗?

从 MAMP 中的 apache 文件夹中更改 httpd.conf 文件,并在 Directory 标记(第 204-208 行)中添加以下代码。

<Directory />
    Options Indexes FollowSymLinks
    AllowOverride All
    Header set Access-Control-Allow-Origin "*"  
</Directory>

可以用nano打开修改

#nano /Applications/MAMP/conf/apache/httpd.conf

然后重新启动您的 MAMP 服务器,应该可以正常工作。

我解决了同样的问题。

您也可以使用名为 "Allow CORS: Access-Control-Allow-Origin" 的 Google Chrome 扩展来解决它。

但请注意,这仅适用于您的 Chrome 浏览器。最高效的方案是第一种,修改服务器上的配置文件。

祝你好运

仅供参考,之前的解决方案并没有解决我的问题。我有 MAMP PRO 6.0.1.

我通过添加解决了

Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"

到指令的附加参数:

MAMP Pro Apache configuration