【发布时间】:2018-03-22 18:57:15
【问题描述】:
我在 Play Framework 项目中启用 CORS 时遇到了困难。我尝试使用我的 api(我制作了一个带有 javascript 的 html 文件)。它一直像这样返回:
XMLHttpRequest 无法加载 http://localhost:9000/generateToken。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'null' 不允许访问。响应的 HTTP 状态代码为 403。
我已经不知道该怎么做了,我按照 Play 的文档进行操作,但它似乎不起作用。
这些是我的 Filters.java:
import com.google.inject.Inject;
import play.http.HttpFilters;
import play.mvc.EssentialAction;
import play.mvc.EssentialFilter;
import play.filters.cors.CORSFilter;
public class Filters extends EssentialFilter implements HttpFilters {
@Inject
private CORSFilter corsFilter;
@Override
public EssentialAction apply(EssentialAction next) {
return corsFilter.asJava().apply(next);
}
@Override
public EssentialFilter[] filters() {
EssentialFilter[] result = new EssentialFilter[1];
result[0] = this;
return result;
}
}
那么这是我的配置:
play.filters.enabled += "play.filters.cors.CORSFilter"
//
play.http.filters = "Filters"
play.filters.cors {
# allow all paths
pathPrefixes = ["/"]
# allow all origins
allowedOrigins = null
allowedHttpMethods = ["GET", "POST", "PUT", "DELETE"]
# allow all headers
allowedHttpHeaders = null
}
有谁能正确回答这个问题吗? T_T T_T
【问题讨论】:
标签: java playframework