我在Nginx中有这个配置
$phpArtist = $phpJson['tracks']['track'][0]['artist'];
现在我的网络应用程序$Artist = $track['artist']['name'];
和server {
listen 8080;
add_header Access-Control-Allow-Origin *;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Content-Type';
}
GET
它运行正常但如果我执行Ajax POST
我收到此错误
XMLHttpRequest无法加载“URL”。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许原点'Origin'访问。响应的HTTP状态代码为404.
如果我做'GET'请求,我可以在回复中看到这一点。
GET
但如果我发帖,我看不到任何一个。
答案 0 :(得分:3)
我遇到了同样的问题,并通过在我的always
指令中添加关键字add_header
来解决问题。正如documentation所述:
add_header
:如果响应代码等于200,201,204,206,301,302,303,304或307,则将指定字段添加到响应头。 [...]如果指定了
always
参数(1.7.5),则无论响应代码如何,都将添加标题字段。
发生的情况是,在没有always
的情况下,我的GET
请求被返回200
,因此具有预期的标头,而我的POST
获得了400,因此没有标题,从而触发CORS错误。