我在本地机器上用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在最好的时候是痛苦的,但这简直太荒谬了。为什么这不起作用?
有任何想法吗?
从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浏览器。最有效的解决方案是第一个,修改服务器上的配置文件。
祝好运