小编Pat*_*cya的帖子

CORS Play Framework

我正在Play Framework 2.5(Java)后端开发一个Angular 2应用程序.如果我通过浏览器URL访问我的端点,它们可以正常工作.但是,从Angular 2应用程序调用它会显示错误:

XMLHttpRequest无法加载localhost:9000/app/myendpoint.请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许原点'localhost:3000'访问.响应的HTTP状态代码为500.

我试着按照文档创建过滤器:

在application.conf中:

play.filters {
  cors {
    pathPrefixes = ["/app"]
    allowedOrigins = null
    allowedHttpMethods = null
  }
Run Code Online (Sandbox Code Playgroud)

过滤:

import play.mvc.*;
import play.api.http.DefaultHttpFilters; <- error with this import
import play.filters.cors.CORSFilter;

public class Filters extends DefaultHttpFilters {
    @Inject public Filters(CORSFilter corsFilter) {
        super(corsFilter);
    }
}
Run Code Online (Sandbox Code Playgroud)

在build.sbt中:

libraryDependencies ++= Seq(
  ...,
  filters
)
Run Code Online (Sandbox Code Playgroud)

有谁知道真正的解决方案?谢谢 :)

工作代码:

Filters.java(在项目的根目录下)

import com.google.inject.Inject;
import com.google.inject.Singleton;    
import play.http.HttpFilters;
import play.mvc.EssentialAction;
import play.mvc.EssentialFilter;
import play.filters.cors.CORSFilter;

@Singleton
public class Filters extends EssentialFilter implements …
Run Code Online (Sandbox Code Playgroud)

java cors playframework angular

9
推荐指数
1
解决办法
2110
查看次数

标签 统计

angular ×1

cors ×1

java ×1

playframework ×1