无法使用MAMP本地主机启用CORS

时间:2018-10-29 04:05:32

标签: .htaccess cors mamp-pro

我已经在本地计算机上用PHP构建了RESTful Api,并且一切运行正常。预检请求正在发送正确的响应等,PHP处理的所有工作都像梦一样。

但是,如果我尝试访问公共文件夹中的图像(在这种情况下,通过编程方式通过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.

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

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

在最佳情况下,CORS会让您感到痛苦,但这真是荒谬。为什么这行不通?

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

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

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

您可以使用nano打开并进行修改。

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

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

我解决了同样的问题。

此外,您也可以使用称为“允许CORS:Access-Control-Allow-Origin”的Google Chrome扩展程序解决此问题。

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

祝你好运

答案 1 :(得分:0)

仅供参考,以前的解决方案没有为我解决问题。我有 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