2010-03-03 3 views
12

AJAX (XMLHttpRequest)를 사용하여 Wikipedia의 API에 간단한 요청을 구현하려고합니다. 파이어 폭스의 주소창에 URL을 입력하면 깔끔한 XML을 얻을 수있다. 그러나 정확히 동일한 URL을 호출하려면 다음을 사용하십시오.AJAX (XMLHttpRequest)를 사용하여 Wikipedia의 API를 쿼리하십시오.

빈 응답을 반환합니다. FireBug에 따르면 200 OK 응답을 받았지만 내용은 비어 있습니다.

GET http 요청의 헤더에 뭔가 빠졌을 것으로 생각됩니다.

도움말! (감사합니다!)

답변

17

The Wikipedia APIJSONP을 지원합니다. 귀하의 질의는 다음과 같이 될 string'll :

http://en.wikipedia.org/w/api.php?action=query&format=json&callback=test&prop=langlinks&lllimit=500&titles=kaas 

하지만 당신은 JSONP 핸들러를 구축해야합니다 (또는 당신이 그것을 할 좋아하는 라이브러리를 사용할 수 있습니다)는 XML에서 JSON 출력 형식으로 전환하면 콜백 함수를 선택하고 생성하여 결과를 구문 분석하고 페이지에서 필요한 것을 수행하십시오.

+0

감사합니다.이 경로는 탐험할만한 경로처럼 들립니다. –

+0

JSONP는 기술적으로 XMLHttpRequest가 아니라 스크립트 삽입 기술을 사용한다는 것을 명심하십시오. –

+0

나를 위해 일했습니다! 반환 된 JSON을 파싱하는 것은 또 다른 모험 이었지만 데이터는 정상적으로 반환되었습니다. –

-1

브라우저는 XHR을 페이지가 아닌 다른 도메인으로 보낼 수 없도록합니다. 이는 보안을위한 것입니다.

내가 본 한 가지 방법은 페이지가 호스팅되어있는 도메인에 프록시를 설정하여 실제 api 서버로 요청을 전달하는 것입니다. http://ajaxpatterns.org/Cross-Domain_Proxy

관련 문제