2017-09-15 34 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。

相关问题