2012-11-19 3 views
1

아약스를 통해 404 사용자 정의 페이지의 내용을 얻으려고합니다 (이 페이지에서는 Greasemonkey를 사용하여 카운터 값이 필요합니다).아약스가있는 사용자 정의 404 오류 페이지의 내용 가져 오기

아쉽게도 jQuery의 .fail 메소드는 성공시 데이터 값과 같이 실제로 페이지의 내용을 읽을 가능성이 없습니다.

해결 방법이 있습니까? 나는 또한 바닐라 js를 살 것이다.

최저 rehards

당신은 바닐라 JS에서이 작업을 수행 할 수 있습니다
+0

ajax 메서드를 호출하여 반환 된'jqXHR' 개체는 전체 응답을 가져야합니다. 이것은 요청에 정의 된'error' 메쏘드의 첫번째 매개 변수로서 전달되어야합니다. http://api.jquery.com/jQuery.ajax/#jqXHR –

+0

가능한 중복 http://stackoverflow.com/questions/4687235/jquery-get-or-post-to-catch-page-load-error-eg -404 – Cyclonecode

+0

나는 greasemonkey 스크립트를 작성하고 원본 사이트의 소유자가 요청으로부터 나를 막으려 고 시도하고 있거나 아마도 버그라고 의심하고 있습니다. – Stasik

답변

1

:

var httpRequest = new XMLHttpRequest(); 
httpRequest.onreadystatechange = function() { 
    if (httpRequest.readyState === 4) { 
     console.log(httpRequest.responseText); 
    } 
}; 
pmc.loading.start(); 
httpRequest.open('GET', url); 
httpRequest.send(); 

Ajax's error callback도 사용할 수 있습니다

이 말했다되고
$.ajax({ 
    url: url, 
    error: function(httpRequest){ 
     console.log(httpRequest.responseText); 
    } 
}); 

, 궁금해, 귀하의 의견에서, 경우 same origin policy과 관련된 문제가 발생하지 않습니다. 사이트 소유자가 입력하지 않은 경우 다른 도메인에서 발행 한 페이지의 콘텐츠를 자바 스크립트로 읽을 수 없습니다. the right headers.

그렇다면 사이트 소유자의 동의없이 클라이언트 측만 수행 할 수 없습니다. 사이트에서 오는 것처럼 페이지를 게재하기 위해 사이트에 프록시를 추가하는 것이 가장 쉽습니다.

+1

+1 여기에'$ .get'을 사용하는 간단한 데모가 있습니다 : http :// /jsfiddle.net/MFpRZ/ – David

+0

@David 유용한 데모를 주신 덕분에 –

+0

위대한 작품입니다. 그것은 원산지 정책이 아닙니다. 저는 그리스 몽키로 일하고 있습니다. 빠른 답변 감사합니다. – Stasik

관련 문제