更新新的Play 2.5提供了一个新的CORS过滤器
随着新的2.3 Java版本完成将Response类迁移到Promise类,以下代码不再有效.
public class CorsAction extends Action.Simple {
public Result call(Context context) throws Throwable{
Response response = context.response();
response.setHeader("Access-Control-Allow-Origin", "*");
//Handle preflight requests
if(context.request().method().equals("OPTIONS")) {
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content- Type, Accept, Authorization, X-Auth-Token");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Origin", "*");
return ok()
}
response.setHeader("Access-Control-Allow-Headers","X-Requested-With, Content-Type, X- Auth-Token");
return delegate.call(context);
}
}
Run Code Online (Sandbox Code Playgroud)
我正在开发Play(Java)2.3中的应用程序,我已经查看并尝试了不同的方法来启用CORS - 包括向路由文件添加/ OPTIONS方法 - 但没有成功.
我非常感谢新的Response实现如何处理这种类型的拦截,因为在新的Promise类中实现时,它似乎没有对头文件产生任何影响.
在此先感谢所有的帮助!!