문제

javaScript에서 XMLHTTPREQUEST를 사용하는 경우 .js 파일이 호스팅되는 웹 사이트가 아닌 외부 웹 사이트로 보내고 싶습니다. 현재 서버에서 test.php로 보내려면

request.open("POST", "test.php", true);

그러나 두 번째 Arguemnt의 경우 어떻게 다른 웹 사이트로 보내야합니까? "example.com/test.php"현재 서버에서 파일을 찾아서 "http://example.com/test.php"그냥 실패하기 만하면됩니다.

도움이 되었습니까?

해결책

보안상의 이유로 당신은 할 수 없습니다. 참조 동일한 원산지 정책 JavaScript의 경우.

브라우저 버그 또는 코너 케이스를 이용하는 해결 방법이 있지만 사용하는 것은 권장되지 않습니다.

최선의 방법은 AJAX 요청을받는 서버 측 프록시를 갖는 것입니다. 결과적으로 HTTP 요청을 다른 서버에 보냅니다. 이는 입력을 소독하고 전송 된 요청 유형과 연락처 서버를 화이트리스트로 신중하게 구현해야합니다.

다른 팁

이것은 나쁜 경우처럼 들립니다 동일한 원산지 정책, 내 친구 :)

(대부분) xmlhttprequest를 사용하여 외부 웹 사이트에서 데이터를 얻을 수 없습니다. 그러나 할 수있는 일은 스크립트 태그를 동적으로 생성하고 외부 주소를 참조하는 것입니다. jQuery Ajax 처리의 일부로 기능적으로 랩핑합니다.

실제로 당신은 할 수 있습니다. 그래도 브라우저에는 없습니다.

Internet Explorer 8.0에는 있습니다 xdomainrequest, 크로스 도메인 요청을 가능하게하는 객체. "*"또는 요청자 도메인 이름으로 먼저 액세스 콘트롤-홀로-오리핀 헤더를 보내서 서버 의이 객체로 작성된 요청을 올바르게 처리해야합니다.

어쨌든 해킹 된 일을하고 있기 때문에 먼저 IE8에서 사용하려고하지 않겠습니까?

서버를 제어 할 수있는 경우 모든 브라우저에서 작동하지는 않지만 HTTP 응답 에서이 헤더를 사용할 수 있습니다.

Access-Control-Allow-Origin: *
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top