我已经使用 SLIM PHP 框架创建了一个基本的 RESTful 服务,现在我正在尝试将它连接起来,以便我可以从 Angular.js 项目访问该服务。我已经读过Angular支持开箱即用的CORS,我需要做的就是在我的.htaccess文件中添加以下行: Header set Access-Control-Allow-Origin "*"
。
我已经这样做了,我的 REST 应用程序仍在工作(没有来自错误的 .htaccess 的 500 内部服务器错误),但是当我尝试从 test-cors.org 对其进行测试时,它抛出了一个错误。
Fired XHR event: loadstart
Fired XHR event: readystatechange
Fired XHR event: error
XHR status: 0
XHR status text:
Fired XHR event: loadend
我的 .htaccess 文件看起来像这样
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /index.php [QSA,L]
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
我还需要在我的 .htaccess 中添加其他内容以使其正常工作,还是有其他方法可以在我的服务器上启用 CORS?
原文由 Devin Crossman 发布,翻译遵循 CC BY-SA 4.0 许可协议
因为无论如何我都将所有内容转发到 index.php,所以我想我会尝试在 PHP 中设置标头而不是 .htaccess 文件,它确实有效!耶!这是我为遇到此问题的其他人添加到 index.php 的内容。
归功于 slashingweapon 对 这个问题 的回答
因为我使用的是 Slim,所以我添加了这条路由,以便 OPTIONS 请求获得 HTTP 200 响应