2017-09-15 11 views
0

순수한 JS (예, 프레임 워크 없음)로 Java API REST와 프론트 엔드 애플리케이션을 만들고 있는데, 같은 도메인으로 액세스하면 애플리케이션이 완벽하게 작동합니다. 하지만 다른 도메인에서 액세스를 시도 할 때 나는 할 수 없습니다.다른 도메인의 API에 액세스 할 수 없습니다.

자바 응용 프로그램에서 내 필터는 다음과 같이이다 :

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

어디서 오류가 있습니까? 스파크 끝은 어떻게됩니까? 요청을 로깅하고 있습니까? 어느 쪽이 오나요? 보십시오 [ask]. 이것은 필터 이전처럼 더 이해할 수 있습니다. – pvg

+0

자습서에서 수행하는 작업 만 구현할 수도 있습니다. https://sparktutorials.github.io/2016/05/01/cors.html (이전 필터는 제대로 작동하지만) – pvg

답변

0

내 응용 프로그램 JS 내 문제를 해결 http://localhost:4567/api에 대한 요청을 누른 다음 다른 도메인에서 응용 프로그램에 액세스 할 때, 응용 프로그램은 자기 자신에 대한 요청을 호출하므로 응용 프로그램의 IP 주소에 의해 로컬 호스트가 변경되었습니다.