2012-09-17 2 views
0

문제가 발생하여 언젠가는 해결되지 않았고 아직까지는이 문제에 대한 최상의 해결책을 얻지 못했습니다. 난 '에 http : // localhost를 : 8080'말을 서버에 거주하는 자바 스크립트에서 XMLHttpRequest를 (POST)를 호출하고 다른 서버 '에 http : // localhost를 : 9090'Xmlhttprequest 크로스 사이트 도메인 문제가 있습니까?

는 브라우저 오류가 아래에 언급 한 바와 같이 : 를 예외 ... "구성 요소가 실패한 코드를 반환했습니다 : 0x80004005 (NS_ERROR_FAILURE)"nsresult : "0x80004005 (NS_ERROR_FAILURE)" 오류는 특정 것도 가리 키지 않습니다. 동일한 서버에서 호출하여 동일한 테스트를하고 잘 작동했습니다. 하지만 두 서버 아키텍처를 찾고 있어요.

어떤 해상도/아이디어입니까? 교차 도메인 원점을 '*'로 설정 한 응답 헤더를 몇 개 게시했지만 xmlhhtprequest 호출에 대한 응답 헤더를 설정하는 방법을 정확하게 모르십니까?

답변

0

통신을 시도하는 엔티티의 출처가 호스트 부분에서는 동일하지만 포트 부분 (localhost : 8080 < -> localhost : 9090)에서 다르므로 동일한 출처 정책 및 브라우저를 위반합니다 오류가 발생합니다. 자세한 내용은 다음을 참조하십시오. http://en.wikipedia.org/wiki/Same_origin_policy

이 문제를 해결할 수있는 방법은 서버에서 반환 한 HTTP 응답에 CORS 헤더를 사용하는 것입니다. HTTP 요청을 생성하기 위해 XHR을 사용한다는 사실은 아무런 효과가 없습니다. 기본적으로 수행해야 할 작업은 http://localhost:9090에 POST 요청에 대한 응답에 Access-Control-Allow-Origin: * 또는 Access-Control-Allow-Origin: http://localhost:8080을 추가하는 것입니다. 물론 응답 헤더를 수정할 수 있도록 게시 할 서버 리소스를 제어 할 수 있다고 가정합니다. 자세한 내용은 다음을 참조하십시오. http://enable-cors.org/http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing

+0

Ivan, 답장을 보내 주셔서 감사합니다. webdevlpment에서 biginner이기 때문에 서버 구성에 대한 아이디어가 적습니다. 내 웹 서버로 jboss를 사용하고 있기 때문에 jboss에서 응답 헤더로 업데이트해야하는 모든 아이디어가 있습니다. – Aki

+0

@ user1678386 jboss 또는 java에 대한 경험이 없으므로 불행히도 없습니다. 필요한 것은 리소스에 의해 반환 된 응답에 대해 일부 헤더를 설정하는 방법입니다. 따라서 "jboss set headers response"또는 "jboss custom headers 추가"에 대한 검색 결과가 사용자의 대답으로 연결됩니다. 행운을 빕니다! –