我已经在本地计算机上用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会让您感到痛苦,但这真是荒谬。为什么这行不通?
有什么想法吗?
答案 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"
指令的附加参数: