Nginx CORS不适用于POST

我在我的Nginx中有这个configuration

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'; } 

现在我有我的Web应用程序, GETPOSTGET它工作正常,但如果我做Ajax POST我得到这个错误

XMLHttpRequest无法加载“url”。 对预检请求的响应不会通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 起源'起源'因此不被允许访问。 该响应具有HTTP状态码404。

如果我做了“GET”请求,我可以在我的回复中看到这个。

 Access-Control-Allow-Headers:Content-Type Access-Control-Allow-Methods:GET, POST, OPTIONS Access-Control-Allow-Origin:* 

但是,如果我发表一篇文章,我没有看到任何。

Solutions Collecting From Web of "Nginx CORS不适用于POST"

我有同样的问题,并通过添加关键字always添加到我的add_header指令来解决。 正如文件所述 :

add_header :如果响应代码等于add_header或307,则将指定的字段添加到响应报头。[…]

如果指定了always参数(1.7.5),则无论响应代码如何,标题字段都将被添加。

发生的事情是,没有always ,我的GET请求返回200 ,因此有预期的标题,而我的POST得到400,因此没有标题,从而触发CORS错误。