2017-10-11 65 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

相關問題