gpt4 book ai didi

java - 如何在 play 2.2.0 Java 中实现 CORS 过滤器?

转载 作者:行者123 更新时间:2023-11-29 08:52:54 26 4
gpt4 key购买 nike

我到处寻找,但我创建的所有解决方案都不适合我,我认为问题出在我的 play 版本中,但无论如何,有人可以帮助我实现 CORS 过滤器 Java玩 2.2.0+。抱歉我的英语不好,我不太确定是否清楚。

我实现了这段代码:

public class CorsComposition {

/**
* Wraps the annotated action in an <code>CorsAction</code>.
*/
@With(CorsAction.class)
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface Cors {
String value() default "*";
}

public static class CorsAction extends Action<Cors> {

@Override
public Promise<SimpleResult> call(Context context) throws Throwable {
Response response = context.response();
response.setHeader("Access-Control-Allow-Origin", "*");

//Handle preflight requests
if(context.request().method().equals("POST")) {
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");

return delegate.call(context);
}

response.setHeader("Access-Control-Allow-Headers","X-Requested-With, Content-Type, X-Auth-Token");
return delegate.call(context);
}


}
}

在我的 Controller 中,我放置了注释@Cors。这对请求没问题,但是当我使用 POST 时,它不起作用。 CROSS ORIGIN NOT ALLOWED 错误显示在我的 Chrome 控制台上。

最佳答案

问题解决了,实际上,问题是由于绑定(bind)错误停止了方法而未返回的方法的返回。所以这段代码适用于 CORS 问题,所以任何人都可以使用它。

关于java - 如何在 play 2.2.0 Java 中实现 CORS 过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21796674/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com