XMLHttpRequest의 onerror 핸들러를 기동하는 타이밍
이해하는데 조금 문제가 있어요.XMLHttpRequest의 핸들러입니다.사양에는 핸들러에 대해 다음과 같이 기재되어 있습니다.
error[ Dispatched ... ]요구가 실패했을 경우
load[디스패치 완료...]요구가 정상적으로 완료된 경우
문제는, 「요구가 실패했습니다」라고 하는 것은 무엇을 의미하는가 하는 것입니다.그건 그럴 수도 있어요.
- 요청을 전혀 발행할 수 없었습니다(예:연결이 거부되어 오류가 발생하였습니다.) 또는
- 위의 에러 코드를 반환한 서버(예: 404)
또, 그 말이 그 말 그대로onerror그리고.onload동시에 발사해서는 안 됩니다.
이 레퍼런스는onerror핸들러는 에 따라 실행할 필요가 있습니다.status코드와onload에 따라readyState서로 배타적이지 않다는 것은 알 수 있지만, 이것은 신뢰할 수 있는 정보가 아니라고 생각합니다.
부탁드리는 건 오페라 최신 스냅숏을 통해서onload404 상태 코드에서도 발생합니다.나는 테스트를 안다status물론입니다만, 사양에 따라 해야 하는 것인지, 아니면 Opera의 버그에 대한 회피책인지 알고 싶습니다.
댓글에서도 언급했듯이onerror네트워크 레벨에서 장애가 발생했을 때 기동됩니다.오류가 어플리케이션레벨에만 존재하는 경우(예를 들어 HTTP 에러 코드가 송신되는 경우)onload아직도 불이 나.반환된 상태 코드를 명시적으로 테스트해야 합니다.onreadystatechange핸들러
거부된 교차 도메인 요구는 다음 명령어를 실행하기도 합니다.onerror핸들러
apsillers의 응답과 더불어 XMLHttpRequest는 백그라운드에서 자동으로 리다이렉트를 처리하므로 에서 이 응답 코드를 확인할 필요가 없습니다.onload이벤트(이 이벤트는 마지막 콜에서 한 번만 호출됩니다).또한 POST 메서드를 사용하여 페이로드 데이터를 전송하고 요구가 리다이렉트된 경우 XMLHttpRequest는 메서드를 에서 변경합니다.POST로.GET는 보안상의 이유로 페이로드 데이터를 폐기합니다.그onload이벤트는 계속 호출되지만 요청을 새 수신처에 수동으로 다시 전송해야 합니다.
언급URL : https://stackoverflow.com/questions/10584318/when-should-xmlhttprequests-onerror-handler-fire
'programing' 카테고리의 다른 글
| AngularJS에서 onKeyUp을 검출하려면 어떻게 해야 합니까? (0) | 2023.03.31 |
|---|---|
| $location 내에서 매개 변수를 전달하고 있습니다.각도에서의 경로 (0) | 2023.03.31 |
| 동일한 디렉티브의 링크 함수 내에서 디렉티브 컨트롤러의 기능 사용 (0) | 2023.03.31 |
| 반응 탐색 5에서 매개 변수로서의 통과 함수 (0) | 2023.03.31 |
| Angular 5 루트를 클릭할 때마다 맨 위로 스크롤합니다. (0) | 2023.03.31 |