2011-08-05 2 views
1

클라이언트 쪽에서 404 오류 페이지 (JavaScript 사용)를 추적하는 데 도움이되는 스크립트를 개발 중입니다. 튜토리얼/게시물을 동일하게 검색했지만 나에게 도움이되는 것은 찾지 못했습니다.추적 404 오류 페이지 또는 자바 스크립트를 사용하여 브라우저에서 만든 HTTP 헤더 요청의 상태를 모니터링하는 방법

하나의 게시물은 서버 쪽에서 curl (PHP)을 사용하여 언급 한 & 사용자를 사용자 지정 404 페이지로 리디렉션합니다. 하지만 그건 내 문제를 해결하지 못한다 (나는 클라이언트 측에서 그것을 원한다).

var request = makeHttpObject(); 
    request.open("GET", "your_url", true); 
    request.send(null); 
.... 
    if(request.status == 404) 
     print("404 error") 

을하지만 이상 여기에 우리가 우리 자신을 따라서 개체에 액세스 할 수있는 HTTP 요청 &하고 있습니다 :이 page

이 방법으로 상태를 감지하는 HTTP 개체를 만들고 연결 &을 여는 방법을 언급 . 내 목표는 사용자 탐색 때문에 브라우저가 보낸 요청에서 404 페이지 오류를 감지하는 것입니다.

브라우저의 http 개체에서 응답 상태를 모니터링 할 수 있습니까? Firebug의 네트워크 분석 기능이 http 헤더에 어떻게 액세스합니까? 스크립트에서 복제 할 수 있습니까?

나는 브라우저의 개발자 도구의 콘솔이 누락 된 페이지와 해당 페이지의 이미지와 같은 개별 요소에 대해 404 오류를 제공한다는 것을 알고 있습니다.

다음은 가능한 해결책은 내가 상상할 수 있습니다

  1. 사용 404 오류를 추적하는 브라우저

  2. 를 사용하여 개발자 도구의/브라우저의 오류 알림에 의해 전송 된 모든 HTTP 요청의 response.status 모니터 (있는 경우) 도구의

고마워

을 그 오류 알림을 추출하는 "API"

답변

0

다음과 같은 의미입니까?

function returnStatus(req, status) { 
    //console.log(req); 
    if(status == 404) { 
    console.log("The url returned status code " + status); 
    } 
    else { 
    console.log("success"); 
    } 
} 

function fetchStatus(address) { 
var client = new XMLHttpRequest(); 
client.onreadystatechange = function() { 
    // in case of network errors this might not give reliable results 
    if(this.readyState == 4) 
    returnStatus(this, this.status); 
} 
client.open("HEAD", address); 
client.send(); 
} 

fetchStatus("http://yoururl.com"); 
관련 문제