CORS在GET中设置工作但不适用于Slim 2中的POST

时间:2018-01-03 14:09:47

标签: php angular slim

我使用Angular 5作为正面,而Slim 2作为背面使用。 Slim允许我完成我的GET请求,但它不允许我在POST请求中。

我在index.php文件中添加了CORS标头。但它不起作用。

header('Access-Control-Allow-Origin : *');
header('Access-Control-Allow-Headers : X-Requested-With, Content-Type, Accept, Origin, Authorization');
header('Access-Control-Allow-Methods : GET, POST, PUT, DELETE, OPTIONS');

如果有人知道解决方案,请提供帮助。

1 个答案:

答案 0 :(得分:2)

当您请求索引页面时,您的代码将授予JS读取响应的权限。

然而,您的JS正在生成a preflight request(这将是OPTIONS而不是POST)。在服务器以权限响应之前,它不会发送POST请求。

您的服务器需要使用200 OK响应和相应的Access-Control-Allow源标头对其进行响应。但是,您的服务器当前正在抛出500 Internal Server Error

您需要查看服务器端代码并​​修复该错误,以便它正确响应OPTIONS请求。