2017-09-15 54 views
0

我正在製作一個Java API REST和一個帶有純JS的前端應用程序(是的,沒有框架),當我通過同一個域訪問時,我的應用程序完美工作,但是當我嘗試訪問另一個域時,我不能。我無法訪問我的另一個域的API

我在Java應用程序過濾器是這樣的:

after((req, resp) -> { 
     resp.header("Access-Control-Allow-Headers", "Access-Control-Allow-Origin, Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"); 
     resp.header("Access-Control-Allow-Methods", "GET,PUT,DELETE,POST,OPTIONS"); 
     resp.header("Content-Encondig", "gzip"); 
     resp.header("Access-Control-Allow-Origin", "*"); 
     resp.type("application/json"); 
    }); 

而我的JS的要求是這樣的:

static get(startDate,endDate){ 
    return fetch(`http://localhost:4567/api/schedule/${startDate}/${endDate}`,{ 
     mode : "cors", 
    }) 
    .then(result => result.json()) 
    .catch(error => erroe) 
} 

重要:如果我被另一個域訪問,而是直接在瀏覽器,我得到了JSON完美 後端:java Spark frameWork

+1

你在哪裏得到什麼錯誤? Spark結束會發生什麼?你記錄了請求嗎?哪些進來?看看[問]。這可能會更有意義的一個之前的過濾器。 – pvg

+0

你也可以在自己的教程中實現他們所做的。 https://sparktutorials.github.io/2016/05/01/cors.html(儘管之前的過濾器也同樣適用) – pvg

回答

0

我解決了我的問題,在我的應用程序JS中,我調用了http://localhost:4567/api的請求,然後當我通過其他域訪問應用程序時,應用程序調用自我請求,因此解決方案是通過應用程序IP地址更改localhost。