2012-07-19 5 views

답변

3

단일 한 XMLHttpRequest 객체를 가지고 있다면, 당신은 오류를 검출하기 위해 status 속성을 읽어 다음 작업이 완료되면, 감지하고 할 수있는 readystatechange 이벤트를 수신합니다.

이제 모든 객체에서이 작업을 수행하려는 경우 XMLHttpRequest가 생성되거나 초기화되면 발생하는 모든 이벤트 (예 : 해당 이벤트에 등록)를 청취해야합니다. XMLHttpRequest 프로토 타입의 open 메서드를 재정 의하여 이벤트 리스너를 등록한 다음 이전 열기를 호출 할 수 있습니다.

나는 (Firefox에서) 그것을 위해 다음 코드를 사용했습니다 :

(function(open) { 
    XMLHttpRequest.prototype.open = function(method, url, async, user, pass) { 
    this.addEventListener("readystatechange", function() { 
     if (this.readyState==4 && (this.status != 200 && this.status != 301 && this.status != 302)) { 
     alert("Error: "+this.statusText) 
     } 
    }, false); 
    open.call(this, method, url, async, user, pass); 
    }; 
})(XMLHttpRequest.prototype.open); 

(이것은 당신이 안전하려면, 여러 번 open는 XMLHttpRequest 객체 당 한 번만 호출되거나 이벤트가 등록되어 있다고 가정 , 아마도 this.open = open;을 추가하여 개방형 기능을 재설정 할 수 있습니다)

관련 문제