$.ajax 오류가 타임아웃인지 확인합니다.
나는 의 마법을 이용하고 있다.jQuery.ajax( settings )
.
그런데 타임아웃 설정을 많이 한 사람이 있을까요?
기본적으로 요청에 대한 로컬 시간을 지시하기 위한 것이지만, 타임아웃에 도달하면 어떤 것도 트리거할 수 있습니까?아니면 단순히 응답을 듣는 것을 멈추는 건가요?
jQuery 사이트를 읽어보면 인수가 전달되지 않았음을 알 수 있기 때문에 하나의 기능을 가진 단순한 설정인 것 같습니다.그건 괜찮아.
다만, 타임 아웃에 이르렀을 경우에 경고나 기능을 기동하고 싶습니다.이 경우는, 에러 설정이 트리거 되지 않는 것을 알 수 있습니다.
제 단편은 다음과 같습니다.
$("form#testform").submit(function(){
var allFormValues = $("form#testform").serialize();
$.ajax({
cache:false,
timeout:8000, // I chose 8 secs for kicks
type:"POST",
url:"someurl.php",
data:allFormValues,
error:function(){ alert("some error occurred") },
success:function(response){ alert(response); }
});
});
타임아웃을 어떻게 하면 더 잘 할 수 있는지 아는 사람 있나요?
타임아웃이 발생했을 때 오류 이벤트핸들러가 3개의 인수(xmlhttprequest, textstatus 및 메시지)를 사용할 경우 상태 arg는 'timeout'이 됩니다.
jQuery 문서에 따르면:
두 번째 인수(null 제외)에 사용할 수 있는 값은 "timeout", "error", "not modified" 및 "parserror"입니다.
그러면 그에 따라 오류를 처리할 수 있습니다.
이걸 증명하는 바이올린을 만들었어요
$.ajax({
url: "/ajax_json_echo/",
type: "GET",
dataType: "json",
timeout: 1000,
success: function(response) { alert(response); },
error: function(xmlhttprequest, textstatus, message) {
if(textstatus==="timeout") {
alert("got timeout");
} else {
alert(textstatus);
}
}
});
jsFiddle을 사용하면 Ajax 콜을 테스트할 수 있습니다.응답하기 전에2초 대기합니다타임아웃 설정을 1초로 설정했기 때문에 에러 아웃이 되어, 에러 핸들러에 「timeout」의 텍스트 상태를 되돌립니다.
이게 도움이 됐으면 좋겠네요!
언급URL : https://stackoverflow.com/questions/3543683/determine-if-ajax-error-is-a-timeout
'source' 카테고리의 다른 글
IPhone에서의 JSON 날짜 해석 (0) | 2023.03.25 |
---|---|
Go 구조를 JSON으로 변환하는 중 (0) | 2023.03.25 |
angular.js에 history.back()을 구현하는 방법 (0) | 2023.03.25 |
select with union 및 CLOB 필드를 사용할 때 오류 ORA-00932 (0) | 2023.03.25 |
d3 js - http get을 사용하지 않고 json을 로드합니다. (0) | 2023.03.25 |