java - 在 Java Playframework 2.4.x + AngularJS 上设置 CORS

标签 java angularjs playframework cors

我尝试在 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/

相关文章:

java - 摆脱 Java 中的魔法数字

java - 做 |和 & 在 Java 中有意义吗?

playframework - 在 "application.conf"文件中从 DEV 模式更改为 PROD 模式时会发生什么?

scala - A safe way of 'overwriting'/'forcing' 某个隐式解析

java - 修剪列表元素中的字符

Java SAX 解析器验证

angularjs - 在基于范围的事件监听器的注册过程中,组件被分离

javascript - 如果选中或选择未更改,如何将类添加到 Angular 中的单选按钮和复选框

javascript - 如果选中所有复选框,则启用提交按钮

json - 如果缺少可选值,则显式输出JSON null