【发布时间】:2016-11-15 00:16:06
【问题描述】:
我没有看到自己发出跨域 AJAX 请求。但是,我仍然收到与 CROSS 相关的错误。这只发生在 Chrome 上。 Firefox 和 Safari 运行良好。
错误: “对预检请求的响应未通过访问控制检查:请求的资源上不存在 'Access-Control-Allow-Origin' 标头。”
设置是:
- AngularJS SPA
- Nginx 提供静态 Web 内容并作为反向代理将 https AJAX 请求作为 http 请求转发到本地 jettty/spring 应用程序
- 作为 Spring 应用程序的一部分公开的 API 使用 shiro 库进行保护
常规
Request URL:https://domainName.com/api/path
Request Method:OPTIONS
Status Code:401
请求标头
:authority:domainName.com
:method:OPTIONS
:path:/api/path
:scheme:https
accept:*/*
accept-encoding:gzip, deflate, sdch, br
accept-language:en-US,en;q=0.8
access-control-request-headers:accept, authorization, content-type
access-control-request-method:POST
origin:https://www.domainName.com
响应标头:
content-length:0
date:Tue, 12 Jul 2016
server:nginx
status:401
www-authenticate:BASIC realm="application"
对 CORS 错误有任何想法吗?
【问题讨论】:
标签: nginx cors jetty shiro preflight