모든 오류를 한 곳에서 처리하고 싶습니다.
XMLHttpRequest 객체에 오류 처리기를 첨부 할 수 있습니까 (또는 그럴 필요는 없는지)? 모든 요청을 처리 할 곳은 어디입니까?한 곳에서 XMLHttpRequest 오류를 처리하는 방법
감사
모든 오류를 한 곳에서 처리하고 싶습니다.
XMLHttpRequest 객체에 오류 처리기를 첨부 할 수 있습니까 (또는 그럴 필요는 없는지)? 모든 요청을 처리 할 곳은 어디입니까?한 곳에서 XMLHttpRequest 오류를 처리하는 방법
감사
단일 한 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;
을 추가하여 개방형 기능을 재설정 할 수 있습니다)