반응형
jQuery : $ .ajax.error 메서드 내에서 HTTP 상태 코드를 얻는 방법은 무엇입니까?
AJAX 요청을 만들기 위해 jQuery를 사용하고 있습니다. HTTP 상태 코드가 400 오류인지 500 오류인지에 관계없이 다른 작업을 수행하고 싶습니다. 이것을 어떻게 달성 할 수 있습니까?
$.ajax({
type: 'POST',
url: '/controller/action',
data: $form.serialize(),
success: function(data){
alert('horray! 200 status code!');
},
error: function(data){
//get the status code
if (code == 400) {
alert('400 status code! user error');
}
if (code == 500) {
alert('500 status code! server error');
}
},
});
최신 정보:
@GeorgeCummins는 응답 본문으로 작업하는 것이 "이상하게 보였습니다"라고 언급했습니다. 이런 일을 시도한 것은 이번이 처음입니다. 내 접근 방식이 모범 사례가 아닙니까? 어떤 것을 권 하시죠? 여기에 또 다른 StackOverflow 질문을 만들었습니다 . 사용자 / 양식 유효성 검사 오류가있을 때 AJAX 요청에 어떤 응답 / 상태 코드를 보내야합니까?
jQuery 1.5를 사용하는 경우 statusCode
작동합니다.
jQuery 1.4를 사용하는 경우 다음을 시도하십시오.
error: function(jqXHR, textStatus, errorThrown) {
alert(jqXHR.status);
alert(textStatus);
alert(errorThrown);
}
첫 번째 경고의 상태 코드가 표시되어야합니다.
다음 statusCode
설정을 사용하여 작업 맵을 만들어야 합니다.
$.ajax({
statusCode: {
400: function() {
alert('400 status code! user error');
},
500: function() {
alert('500 status code! server error');
}
}
});
참조 (스크롤 : 'statusCode')
편집 (댓글에 대한 응답으로)
응답 본문에 반환 된 데이터를 기반으로 조치를 취해야하는 경우 (이상하게 보임) error:
대신 사용해야 합니다.statusCode:
error:function (xhr, ajaxOptions, thrownError){
switch (xhr.status) {
case 404:
// Take action, referencing xhr.responseText as needed.
}
}
사용하다
statusCode: {
404: function() {
alert('page not found');
}
}
-
$.ajax({
type: 'POST',
url: '/controller/action',
data: $form.serialize(),
success: function(data){
alert('horray! 200 status code!');
},
statusCode: {
404: function() {
alert('page not found');
},
400: function() {
alert('bad request');
}
}
});
다른 해결책은 response.status 함수를 사용하는 것입니다. 이것은 ajax 호출에 의해 반환되는 http 상태를 제공합니다.
function checkHttpStatus(url) {
$.ajax({
type: "GET",
data: {},
url: url,
error: function(response) {
alert(url + " returns a " + response.status);
}, success() {
alert(url + " Good link");
}
});
}
반응형
'Program Tip' 카테고리의 다른 글
레일의 루비 레이아웃에 이미지 추가 (0) | 2020.11.10 |
---|---|
C #에서 더 큰 문자열에서 하위 문자열의 모든 위치 찾기 (0) | 2020.11.10 |
모든 TypeScript 소스를보고 컴파일하는 방법은 무엇입니까? (0) | 2020.11.10 |
데이터베이스에서 csv 파일로 테이블 내보내기 (0) | 2020.11.10 |
조건에서 할당을 사용하는 이유는 무엇입니까? (0) | 2020.11.09 |