我尝试在 java playframework 2.4.x 中设置 CORS,但没有成功。 我的前端应用程序使用 AngularJS 1.3.x。
我按照 documentation 实现了 Filters 类但我来自 AngularJS 的预检 OPTIONS 请求失败了,没有明显的原因。
这是我关于过滤器的 application.conf 值:
注意:我编辑了域名(我不是 example.com 的所有者);)
...
play.filters.cors {
allowedOrigins = ["http://example.com", "http://beta.example.com", "http://example.com/beta"]
allowedHttpMethods = ["GET", "POST", "PUT", "OPTIONS", "DELETE"]
allowedHttpHeaders = ["Accept", "Content-type"]
preflightMaxAge = 3 days
}
...
我的 Play 应用程序托管在与前端不同的服务器中: 我的主主机上本质上有一个子目录,其中包含 Angular 应用程序和一个指向 Play 服务器的子域。
关于我应该调查哪里的任何想法/建议?
最佳答案
经过三天的努力,我终于明白了问题所在。 显然,Cisco AnyConnect VPN 的一个模块阻止了所有 OPTIONS 预检请求。
与 Play 或 AngularJS 无关。
这是我找到解决方案的链接: http://www.bennadel.com/blog/2559-cisco-anyconnect-vpn-client-may-block-cors-ajax-options-requests.htm
只需卸载客户端就足够了!一切又恢复正常了!
发帖供其他可能遇到相同问题的人引用。
最好, E.
关于java - 在 Java Playframework 2.4.x + AngularJS 上设置 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31292029/