java - 在 Java Play Framework 2.2.x 中启用 CORS

标签 java playframework cors playframework-2.2

我在 Java Play 2.2.x 中启用跨域时遇到问题

在 Java Play 2.1.3 中,这段代码通过将它放在 Global.java 中来工作

public class Global extends GlobalSettings {

  private class ActionWrapper extends Action.Simple {
    public ActionWrapper(Action action) {
     this.delegate = action;
  }

    @Override
    public Result call(Http.Context ctx) throws java.lang.Throwable {
      Result result = this.delegate.call(ctx);
      Http.Response response = ctx.response();
      response.setHeader("Access-Control-Allow-Origin", "*");
      return result;
    }
  }

  @Override
  public Action onRequest(Http.Request request, java.lang.reflect.Method actionMethod) {
    return new ActionWrapper(super.onRequest(request, actionMethod));
  }

}

但是当我尝试在 java play 2.2.x 上编译时,它不再编译了。

编译错误信息:

Global.ActionWrapper 不是抽象的,不会覆盖 Action 中的抽象方法调用(Context) ...

是否有 java play 2.2.x 的等效代码?

谢谢。

最佳答案

看起来像这样:

import play.GlobalSettings;
import play.libs.F.Promise;
import play.mvc.Action;
import play.mvc.Http;
import play.mvc.SimpleResult;

public class Global extends GlobalSettings {
    private class ActionWrapper extends Action.Simple {
        public ActionWrapper(Action<?> action) {
            this.delegate = action;
        }

        @Override
        public Promise<SimpleResult> call(Http.Context ctx) throws java.lang.Throwable {
            Promise<SimpleResult> result = this.delegate.call(ctx);
            Http.Response response = ctx.response();
            response.setHeader("Access-Control-Allow-Origin", "*");
            return result;
        }
    }

    @Override
    public Action<?> onRequest(Http.Request request, java.lang.reflect.Method actionMethod) {
        return new ActionWrapper(super.onRequest(request, actionMethod));
    }
}

关于java - 在 Java Play Framework 2.2.x 中启用 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22144788/

相关文章:

java - Ical4j。 RFC5545。计算排除事件的发生次数

java - 游戏中下面这句话是什么意思!文档?

scaladoc 玩!带有 Scala 模块的框架

java - 玩!框架获取整页内容

c# - 服务仅有时会抛出 No 'Access-Control-Allow-Origin' header 错误

java - 为什么 JAXB 以不同的方式处理扩展?

java - ProcessBuilder未读取执行文件

java - 像这样设置系统 PATH : export PATH=$PATH:/. ./play Linux 上的 Play Framework 失败

azure - 如何使用 HTTP 将 CORS 规则添加到 Azure 存储模拟器?

javascript - 配置 Node.js 应用程序以仅在特定端点上启用 CORS