2011-10-22 4 views
0

가 나는 구글 크롬 확장을 쓰고 있어요 내가 같은 원본 정책 회피 할 필요 (XML없이) 일반 HTML : 그러나XMLHTTPRequest();

var xhr = new XMLHttpRequest(); 

xhr.open("GET", "my url", true); 

는 "내 URL"는 HTML 페이지의 URL입니다 (더 구체적으로 자바 스크립트 템플리트) 그리고 "Uncaught SyntaxError : Unexpected token <"이 내 콘솔에서 나타납니다.

GET의 google 크롬 확장 xhr 메소드를 사용하여이 XML을 허용하는 방법 (동일한 원본 정책으로 인해 .ajax를 사용할 수없고 JSONP를 호출하면 HTML을 구문 분석 할 수 없음)

+1

자세한 내용이 필요합니다. '내 URL'의 응답은 무엇입니까? 나머지 기능은 어디에 있습니까? –

+2

예, XMLHttpRequest는 AJAX 기능으로 비동기 JavaScript 및 XML의 약자이지만 HTML도 완벽하게 사용할 수 있습니다. – comu

+0

응답은 ""입니다. 그것은 아직 기능의 일부가 아니며, 나는 단지 그것을 작동 시키려고 노력하고 있습니다. HTML이 유효하다면 왜 처음 "<"에 의해 트립 되었습니까? – user995469

답변

0

jsonp를 사용하여 데이터를 가져와야합니다. html을 파싱 할 계획을 세우고 있지만 html도 제대로 형식화되어 있다면 더 쉽게 될 것입니다. 제대로 포맷 된 html 또는 xml을 반환하는 프록시를 만들 수 있습니다. 프록시에서는 tidyhtml을 사용할 수 있습니다. tidyhtml은 잘못된 형식의 HTML을 가져 와서 HTML 또는 xhtml 형식의 HTML 데이터를 출력합니다. 그렇지 않으면 문자열 조작을 많이하게 될 것입니다. 어느 쪽이든 jsonp로 데이터를 가져와야합니다. 웹 페이지의 일부 html 요소에로드하여 jquery로 조작 할 수 있습니다. jsonp를 사용하여 HTML을로드 할 때 문제는 콜백 함수를 통해 전달하기 전에 몇 가지 html 문자를 이스케이프 처리해야한다는 것입니다.