在 Java Playframework 2.4.x + AngularJS 上设置 CORS
Posted
技术标签:
【中文标题】在 Java Playframework 2.4.x + AngularJS 上设置 CORS【英文标题】:Setup CORS on Java Playframework 2.4.x + AngularJS 【发布时间】:2015-09-26 07:49:16 【问题描述】:我正在尝试在 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
...
我的播放应用程序托管在与前端不同的服务器中: 我的主要主机上有一个子目录,其中包含 Angular 应用程序和一个指向播放服务器的子域。
关于我应该在哪里调查的任何想法/建议?
【问题讨论】:
我不得不问一下:你是否在allowedOrigins
数组中放置了有意义的来源,而不仅仅是 example.com(假设你不是 example.com 的所有者):)
@Anton 抱歉,我应该编辑问题以指定我当然已经放置了自己的域。 :) 现已编辑。
【参考方案1】:
经过 3 天的努力,我终于明白了问题所在。 显然,Cisco AnyConnect *** 的一个模块阻止了所有 OPTIONS 预检请求。
与 Play 或 AngularJS 无关。
这是我找到解决方案的链接: http://www.bennadel.com/blog/2559-cisco-anyconnect-***-client-may-block-cors-ajax-options-requests.htm
只需卸载客户端并繁荣就足够了!一切都恢复正常了!
发帖作为其他可能遇到相同问题的人的参考。
最好, E.
【讨论】:
以上是关于在 Java Playframework 2.4.x + AngularJS 上设置 CORS的主要内容,如果未能解决你的问题,请参考以下文章
缺少包'play.filters.cors.CORSFilter' - Play Framework 2.4.6 (Java)
如何使用 JPA 在 playframework 1.2.4 中执行存储过程?
playframework[1.2.4] 500个html页面
playframework 1.2.4 在 jquery 中调用操作并在视图上呈现