반응형
XHR에 대한 404 오류 감지
기본적으로, 저는 서버에 대한 일련의 비동기 요청을 큐잉하고, JSON에 대한 응답을 처리하고, 오류를 기록하는 자바스크립트 APP 객체를 만들어야 했습니다.
JSON 처리 오류는 "try-catch"로 쉽게 발견되었지만, 404, 500 등의 서버 오류는 여전히 브라우저 콘솔에 표시되며, 저는 "APP.history"에 자동으로 기록해야 합니다.
아래 코드를 통해 구현을 시도했지만, 404개의 오류 중 한 개의 오류도 발생하지 않았습니다.내가 뭘 잘못하고 있는 거지?
xhr = new XMLHttpRequest();
xhr.open("GET", url, true)
xhr.onerror = function(){console.log("error")}
xhr.upload.onerror = function(){console.log("error")}
그런데 jQuery AJAX로 어떻게 할 수 있습니까?
404 상태는 xhr.onerror()를 트리거하지 않습니다. 엄밀히 말하면 오류가 아니기 때문입니다. 404 자체는 유효한 응답입니다.
한 가지 해결책은 loadend() 핸들러를 사용하는 것인데, 이 핸들러는 어떤 일이 있어도 작동합니다.그런 다음 404의 상태 또는 관심 있는 상태를 확인합니다.
xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.onloadend = function() {
if(xhr.status == 404)
throw new Error(url + ' replied 404');
}
XMLHttpRequestUpload에도 동일한 메서드가 있습니다.안타깝게도 브라우저 공급업체는 2017년 네트워크 오류를 프로그래밍 방식으로 억제할 수 없습니다.그러나 콘솔의 필터링 옵션을 사용하여 네트워크 오류를 억제할 수 있습니다.
언급URL : https://stackoverflow.com/questions/30426277/catch-a-404-error-for-xhr
반응형
'programing' 카테고리의 다른 글
jQuery를 사용하여 div에 특정 클래스의 자식이 있는지 확인 (0) | 2023.08.25 |
---|---|
Opensl : "인증서 체인의 자체 서명된 인증서" 오류 (0) | 2023.08.25 |
SQLSTATE[42000]:구문 오류 또는 액세스 위반: 마이그레이션에서 Laravel 및 MariaDB 오류 1064 (0) | 2023.08.25 |
ORA-01735: 잘못된 ALTER TABLE 옵션 - Toad (0) | 2023.08.25 |
PowerShell을 사용하여 XSD에 대해 XML 파일의 유효성을 검사하는 방법은 무엇입니까? (0) | 2023.08.25 |