【发布时间】:2016-08-19 11:10:33
【问题描述】:
我尝试在我的 java play 应用上启用 CORS 过滤器。我正在使用 angularjs 访问 localhost 来获取一些数据。这是我在 Play 应用程序方面所做的,
application.conf
play.http.filters = "com.de.filters.Filters"
play.filters.cors {
allowedOrigins = null
allowedHttpMethods = ["GET", "POST"]
allowedHttpHeaders = ["Accept"]
preflightMaxAge = 3 days
}
Filters.java
public class Filters implements HttpFilters {
@Inject
CORSFilter corsFilter;
public EssentialFilter[] filters() {
return new EssentialFilter[]{corsFilter};
}
}
当我尝试调用我的服务时,它给了我一个错误,
XMLHttpRequest 无法加载 http://localhost:9000/app/search/0/10。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://localhost' 不允许访问。响应的 HTTP 状态代码为 403。
我该如何解决这个问题?
【问题讨论】:
-
也许尝试将 allowedOrigins 设为空字符串而不是 null ?
allowedOrigins =。或者甚至只是省略该参数。看看它是否允许。或者添加 localhost 或 127.0.0.1 到它。 -
我做了
allowedOrigins = ["127.0.0.1"]。但我仍然无法访问。
标签: java angularjs cors playframework-2.4