我在本地机器上用 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.
我在
.htaccess
中设置了以下内容公共(public)根目录和 MAMP Apache <Directory>
中的文件和 <VirtualHost>
指令,但它只是拒绝工作。Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "*"
在最好的情况下,CORS 是一件令人头疼的事情,但这太荒谬了。为什么这不起作用?
有任何想法吗?
最佳答案
更改httpd.conf
从 MAMP 中的 apache 文件夹中创建文件并在 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 服务器,应该可以正常工作。
我解决了同样的问题。
您也可以使用名为“允许 CORS:Access-Control-Allow-Origin”的 Google Chrome 扩展程序来解决它。
但请注意,这仅适用于您的 Chrome 浏览器。最有效的解决方案是第一种,修改服务器上的配置文件。
祝你好运
关于.htaccess - MAMP localhost 无法启用 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53038609/