Cors阻止Nginx上状态为403的请求

Cors阻止Nginx上状态为403的请求,nginx,cors,http-status-code-403,Nginx,Cors,Http Status Code 403,我在Nginx上运行CORS时遇到了一个奇怪的问题,CORS在任何情况下都可以正常工作,只有一种情况除外,即服务器使用403http响应进行响应 基本上,当我使用正确的凭据登录时,cors请求工作正常,但是当我为登录提供错误的凭据时,服务器(后端)以403状态响应,我得到以下错误 “网络错误:403禁止- 登录 已阻止跨源请求:同一源策略不允许读取位于的远程资源。这可以通过将资源移动到同一域或启用CORS来解决。 如果凭据是正确的,我不会得到这个错误,一切都很好 我已经完成了启用CORS的配

我在Nginx上运行CORS时遇到了一个奇怪的问题,CORS在任何情况下都可以正常工作,只有一种情况除外,即服务器使用403http响应进行响应

基本上,当我使用正确的凭据登录时,cors请求工作正常,但是当我为登录提供错误的凭据时,服务器(后端)以403状态响应,我得到以下错误

“网络错误:403禁止-
登录
已阻止跨源请求:同一源策略不允许读取位于的远程资源。这可以通过将资源移动到同一域或启用CORS来解决。
如果凭据是正确的,我不会得到这个错误,一切都很好

我已经完成了启用CORS的配置,它似乎可以很好地用于其他所有方面

以下是请求头

请求标题

用户代理:Mozilla/5.0(X11;Ubuntu;Linux x86_64;rv:29.0)Gecko/20100101 Firefox/29.0
推荐人:
Pragma:没有缓存
来源:
主持人:www.mydomain.com
内容类型:application/json;字符集=utf-8
内容长度:74
连接:保持活力
缓存控制:没有缓存
接受语言:en-US,en;q=0.5
接受编码:gzip,deflate
接受:application/json、text/plain、/
响应标题

服务器:nginx/1.4.1
日期:2014年6月10日星期二05:28:30 GMT
内容类型:application/json;字符集=utf-8
内容长度:76
连接:保持活力

我假设您正在使用
add\u header
指令在nginx配置中添加CORS header

Nginx模块参考状态关于
add_header

如果响应代码等于200、201、204、206、301、302、303、304或307,则将指定字段添加到响应标头

要解决此问题,您可以使用模块将CORS头也设置为错误响应

more_set_headers 'Access-Control-Allow-Origin: $http_origin';

more_set_headers 'Access-Control-Allow-Headers: Content-Type, Origin, Accept, Cookie';
nginx(>=1.75)的一个选项是在以下内容中指定
始终
参数:

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


也许粘贴请求和响应标题将有助于回答您的问题question@Marcel我已经用请求和响应标题更新了帖子。这看起来不是问题,RESTFUL API意味着,如果您输入了错误的凭据,它将用403响应,这是应该的。@Marcel绝对的,问题是当服务器用403响应时,我在firebug控制台上开始出现CORS错误。粘贴的标题中没有与CORS相关的标题。