2017-10-11 56 views
0

我在这里很难在我的Play Framework项目中启用CORS。我试图用我的api(我用javascript做了一个html文件)。它像这样保持返回:如何在Java中的Play Framework 2.5.9中启用CORS

XMLHttpRequest无法加载http://localhost:9000/generateToken。对预检请求的响应不会通过访问控制检查:请求的资源上不存在“访问控制 - 允许来源”标头。因此不允许原产地'null'访问。该响应的HTTP状态代码403.

我不知道该做什么,ive跟着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

回答

0

的过滤器()的实现是关闭:

@Override 
public EssentialFilter[] filters() { 
    final List<EssentialFilter> filters = new ArrayList<>(); 
    filters.add(corsFilter.asJava()); 
    return filters.toArray(new EssentialFilter[0]); 
} 

的过滤器类只需要实现HttpFilters

相关问题