반응형
Jquery Ajax 오류 콜백
제안이나 설명이 필요합니다.아약스한테 전화할 게다
$.ajax({
type: "GET",
url: base_url+'/ajax/fetch/counts/',
dataType: 'json',
data: {},
error: function(xhr, error){
console.debug(xhr); console.debug(error);
},
success: display_counts
});
잘 되고 있어요.나의success
콜백은 응답으로 올바르게 기동합니다.하지만 제가 깨달은 건error
콜백은 콜이 성공 상태 200을 반환한 경우에도 매번 실행됩니다.상기의 경우error
콜백, 그 오브젝트가 보입니다.xhr.status
200 입니다.
뭐가 잘못됐는지, 여기서 무슨 일이 일어나고 있는지 설명할 수 있는 사람? error
콜백은 404 또는 200 이외의 응답이 있을 때만 발생합니다.제 추측이 맞습니까?
감사해요.
제안입니다. $.ajaxSetup()을 사용하여 다음과 같은 올바른 오류를 확인합니다.
$(function() {
$.ajaxSetup({
error: function(jqXHR, exception) {
if (jqXHR.status === 0) {
alert('Not connect.\n Verify Network.');
} else if (jqXHR.status == 404) {
alert('Requested page not found. [404]');
} else if (jqXHR.status == 500) {
alert('Internal Server Error [500].');
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.');
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax request aborted.');
} else {
alert('Uncaught Error.\n' + jqXHR.responseText);
}
}
});
});
오류 콜백은 http 오류에 대해 호출되지만 응답에 대한 JSON 해석에 실패한 경우에도 호출됩니다.응답 코드가 200인 경우에도 에러 콜백이 발생할 수 있습니다.
최근의 질문에서도 같은 문제가 있었습니다.json
jquery 요청, 주변 제거 시도()
당신의 json 응답으로부터.
생각할 수 있는 몇 가지 사항:
- 다음 설정에 의해 캐시를 비활성화했는지 확인합니다.
cache: false
. - Firefox를 사용하는 경우 Firebug 및 Net 탭을 사용하여 요청을 모니터링해 보십시오.
- 브라우저의 JSON 파서에 의존하지 마십시오.저는 이것을 추천합니다.JSON의 크리에이터인 https://github.com/douglascrockford/JSON-js/blob/master/json2.js도 마찬가지입니다.
저는 jQuery 전문가는 아니지만, PROType.js를 사용하면 요청이 성공했을 때 AJAX 오류 핸들러가 실행되지만success
핸들러가 에러를 일으킵니다.jQuery에서도 같은가요?이게 무슨 일이 일어나고 있는지 테스트하려면display_counts
한 번에...캐치 블록
바꾸다dataType
부터plain/text
로.html
언급URL : https://stackoverflow.com/questions/3642348/jquery-ajax-error-callback
반응형
'programing' 카테고리의 다른 글
사용자 지정 Angular 지시어를 통해 템플릿을 조건부로 적용하는 방법은 무엇입니까? (0) | 2023.03.07 |
---|---|
AngularJS에서 동적 모델 이름을 설정하려면 어떻게 해야 합니까? (0) | 2023.03.07 |
하위 테마의 워드프레스 하위 테마 (0) | 2023.03.07 |
웹사이트 스타일시트 복사로 법적 문제가 생길 수 있나요? (0) | 2023.03.07 |
항상 소수점 2자리 숫자 표시항상 소수점 2자리 숫자 표시 (0) | 2023.03.07 |