2011-02-05 5 views
2

API가있는 외부 웹 사이트에서 일부 데이터에 대한 요청을 시작하려고합니다.간단한 XML HttpRequest 질문

웹 브라우저에 요청을 복사하여 복사하면 문제가 없습니다. 예 : (http://example.com/json/user/search/all) 브라우저 창에서 결과를 볼 수 있습니다.

그러나 웹 사이트에서이 쿼리를 실행하려고하는데 문제가 발생했습니다. var req = new XMLHttpRequest(); req.open 나는라는 오류 얻을 req.send()

(abovementionedurl 사실을 'GET') : 원산지 (MYDOMAIN)가 원산지를 허용 액세스 제어에 의해 허용되지 않습니다.

XMLHttpRequests를 처음 접했을 때는 매우 간단합니다. 누구나 알아? (Google 검색했지만 좋은 답변을 찾을 수 없습니다) 미리 감사드립니다.

+0

관련 항목 참조 http://stackoverflow.com/questions/1830050/why-same-origin-policy-for-xmlhttprequest –

답변

2

Cross-Site XMLHttpRequests을 수행 할 수 없으며이를 수행하기 위해 프록시를 사용해야합니다.

This article (야후!)에서 자세히 설명하고 해결 방법에 대한 아이디어를 더 많이 제공합니다. 그러나 보안상의 이유로 이러한 제한이 존재하기 때문에 기본적으로 수행하면 안됩니다.

예를 들어 PHP와 fopen()을 사용하고 XMLHttpRequest 객체를 사용하여 해당 페이지를 호출하는 것이 더 좋을 것입니다.

1

이것은 크로스 스크립팅에 대한 브라우저의 보호 기능입니다. 다른 도메인에서 온 다른 페이지에는 액세스 할 수 없습니다.

편집 : 또한이를 확인 : Cross-site XMLHttpRequest

2

문제는 same-origin policy입니다. 원본 페이지와 동일한 도메인을 제외하고 XMLHTTPRequests가 이 아닌 일 수 있다는 규칙입니다. 보안상의 이유로

가장 쉬운 방법은 요청을 프록시하는 서버 측 스크립트를 작성하는 것입니다.

+0

아 감사합니다. 그건 의미가 있습니다. – CTC