jQuery ajax 오류 함수
Ajax 콜이 데이터를 페이지에 전달하고 그 후 값을 반환합니다.
페이지에서 성공한 콜을 취득했지만 ASP에서 에러가 발생하도록 코드화했습니다.jquery에서 오류를 복구하려면 어떻게 해야 합니까?
예를 들어 다음과 같습니다.
cache: false,
url: "addInterview_Code.asp",
type: "POST",
datatype: "text",
data: strData,
success: function (html) {
alert('successful : ' + html);
$("#result").html("Successful");
},
error: function (error) {
**alert('error; ' + eval(error));**
}
제가 이해할 수 없는 오류 비트입니다.함수에서는 서버에서 발생한 오류 메시지를 사용하려면 어떤 파라미터를 입력해야 합니까?
Ajax에서 필요한 파라미터error
기능jqXHR, exception
다음과 같이 사용할 수 있습니다.
$.ajax({
url: 'some_unknown_page.html',
success: function (response) {
$('#post').html(response.responseText);
},
error: function (jqXHR, exception) {
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
$('#post').html(msg);
},
});
파라미터
jqXHR:
이것은 실제로 다음과 같은 오류 개체입니다.
또한 를 사용하여 자신의 브라우저 콘솔에서 이를 볼 수도 있습니다.console.log
내부error
다음과 같은 기능:
error: function (jqXHR, exception) {
console.log(jqXHR);
// Your error handling logic here..
}
를 사용하고 있습니다.status
예를 들어 status = 404가 표시되는 경우 요청된 페이지를 찾을 수 없음을 의미합니다.그것은 전혀 존재하지 않는다.이 상태 코드를 기반으로 사용자를 로그인 페이지 또는 비즈니스 로직에서 요구하는 모든 페이지로 리디렉션할 수 있습니다.
예외:
예외 유형을 나타내는 문자열 변수입니다.그래서 404 에러가 나면exception
텍스트는 단순히 '오류'입니다.마찬가지로, 우리는 다른 예외 텍스트와 마찬가지로 '타임아웃'이나 '아보트'를 받을 수 있다.
폐지 통지:그
jqXHR.success()
,jqXHR.error()
,그리고.jqXHR.complete()
콜백은 jQuery 1.8에서는 권장되지 않습니다.최종적으로 삭제될 코드를 준비하려면jqXHR.done()
,jqXHR.fail()
,그리고.jqXHR.always()
대신.
따라서 jQuery 1.8 이상을 사용하는 경우 성공 및 오류 함수 로직을 다음과 같이 업데이트해야 합니다.
// Assign handlers immediately after making the request,
// and remember the jqXHR object for this request
var jqxhr = $.ajax("some_unknown_page.html")
.done(function (response) {
// success logic here
$('#post').html(response.responseText);
})
.fail(function (jqXHR, exception) {
// Our error logic here
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
$('#post').html(msg);
})
.always(function () {
alert("complete");
});
이것을 시험해 보세요.
error: function(jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
프런트엔드에 검증 오류를 통지하려면 json을 반환해 보십시오.
dataType: 'json',
success: function(data, textStatus, jqXHR) {
console.log(data.error);
}
asp 스크립트는 다음과 같이 반환됩니다.
{"error": true}
asp 오류를 추출하는 방법은 다음과 같습니다.
cache: false,
url: "addInterview_Code.asp",
type: "POST",
datatype: "text",
data: strData,
success: function (html) {
alert('successful : ' + html);
$("#result").html("Successful");
},
error: function (jqXHR, textStatus, errorThrown) {
if (jqXHR.status == 500) {
alert('Internal error: ' + jqXHR.responseText);
} else {
alert('Unexpected error.');
}
}
error(jqXHR, textStatus, errorThrown)
http://api.jquery.com/jQuery.ajax/
cache: false,
url: "addInterview_Code.asp",
type: "POST",
datatype: "text",
data: strData,
success: function (html) {
alert('successful : ' + html);
$("#result").html("Successful");
},
error: function(data, errorThrown)
{
alert('request failed :'+errorThrown);
}
기능을 사용하고 있습니다.
error(error)
jquery는 실제로는 다음 3개의 파라미터를 가진 함수를 찾고 있습니다.
error(jqXHR, textStatus, errorThrown)
두 개의 매개 변수를 추가해야 합니다.
또한: '비권장'에 대해 언급한 위의 모든 코멘트를 확인해 주십시오.
$.ajax("www.stackoverflow.com/api/whatever", {
dataType:"JSON"
data: { id=1, name='example' }
}).succes(function (result) {
// use result
}).error(function (jqXHR, textStatus, errorThrown) {
// handle error
});
다음과 같은 것을 사용할 수 있습니다.
주의: responseText
반환 서버response
그리고.statusText
사전 정의된 값을 반환합니다.
에의 메시지.status
error. 예:
responseText
예를 들어, 반환하다"Not Found (#404)"
Yii2와 같은 프레임워크에서는요.
statusText
돌아온다"Not Found"
.
$.ajax({
cache: false,
url: "addInterview_Code.asp",
type: "POST",
datatype: "text",
data: strData,
success: function (html) {
alert('successful : ' + html);
$("#result").html("Successful");
},
error: function (data) {
console.log(data.status + ':' + data.statusText,data.responseText);
}
});
jquery.com 에서 :
The jqXHR.success(), jqXHR.error(), and jqXHR.complete()
callback methods introduced injQuery 1.5 are deprecated
as of jQuery 1.8. To prepare your code for their eventual
removal, use jqXHR.done(), jqXHR.fail(), and jqXHR.always() instead.
글로벌 핸들러를 사용하는 경우는, 다음을 사용할 수 있습니다.
.ajaxStart(), .ajaxStop(),
.ajaxComplete(), .ajaxError(),
.ajaxSuccess(), .ajaxSend()
난 이거면 돼.
$.ajax({
type: 'POST',
url: url,
data: {
menu: str
},
beforeSend: function(){
$.notify("sorting", "info");
},
success: function(data) {
$.notify("success", "success");
},
error: function (data) {
$.notify("Opps!", "error");
}
});
언급URL : https://stackoverflow.com/questions/6792878/jquery-ajax-error-function
'programing' 카테고리의 다른 글
Spring Boot의 Error Controller 및 Spring의 ResponseEntity 사용Exception Handler가 올바르게 실행됨 (0) | 2023.03.17 |
---|---|
onChange 이벤트 내 2가지 함수를 호출합니다. (0) | 2023.03.17 |
jquery ajax 호출 - .fail vs. : error (0) | 2023.03.17 |
워드프레스 메뉴에 범위 추가 (0) | 2023.03.17 |
Composer에서 프리미엄 Wordpress 테마 설치 (0) | 2023.03.17 |