반응형
JSON(jQuery)에서 500개의 오류 처리
JSON 요청 사항:
$.ajax({
url:jSONurl+'?orderID='+thisOrderID+'&variationID='+thisVariationID+'&quantity='+thisQuantity+'&callback=?',
async: false,
type: 'POST',
dataType: 'json',
success: function(data) {
if (data.response == 'success'){
//show the tick. allow the booking to go through
$('#loadingSML'+thisVariationID).hide();
$('#tick'+thisVariationID).show();
}else{
//show the cross. Do not allow the booking to be made
$('#loadingSML'+thisVariationID).hide();
$('#cross'+thisVariationID).hide();
$('#unableToReserveError').slideDown();
//disable the form
$('#OrderForm_OrderForm input').attr('disabled','disabled');
}
},
error: function(data){
alert('error');
}
})
특정 상황에서는 다음과 같은 형태로 500개의 오류가 반환됩니다.
jQuery17205593111887289146_1338951277057({"message":"Availability exhausted","status":500});
하지만 이것은 여전히 저에게 유용하며, 저는 이것을 올바르게 처리할 수 있어야 합니다.
그런데 어떤 이유에서인지 이 500 오류가 반환되면 오류 함수가 호출되지 않고 방화벽에서 "NetworkError: 500 Internal Server Error" 오류가 발생합니다.
어떻게 하면 좋을까요?
해보셨습니까statuscode
와 같은 콜백.
$.ajax({
statusCode: {
500: function() {
alert("Script exhausted");
}
}
});
POST를 사용하는 경우 다음과 같은 방법을 사용할 수 있습니다.
$.post('account/check-notifications')
.done(function(data) {
// success function
})
.fail(function(jqXHR){
if(jqXHR.status==500 || jqXHR.status==0){
// internal server error or internet connection broke
}
});
jqXHR 오브젝트 문서를 확인합니다.실패 방법을 사용하여 오류를 캡처할 수 있습니다.
귀하의 경우 다음과 같은 것이 경우:
$.post(jSONurl+'?orderID='+thisOrderID+'&variationID='+thisVariationID+'&quantity='+thisQuantity+'&callback=?')
.done(function(data){
if (data.response == 'success'){
//show the tick. allow the booking to go through
$('#loadingSML'+thisVariationID).hide();
$('#tick'+thisVariationID).show();
}else{
//show the cross. Do not allow the booking to be made
$('#loadingSML'+thisVariationID).hide();
$('#cross'+thisVariationID).hide();
$('#unableToReserveError').slideDown();
//disable the form
$('#OrderForm_OrderForm input').attr('disabled','disabled');
}
}, "json")
.fail(function(jqXHR, textStatus, errorThrown){
alert("Got some error: " + errorThrown);
});
나는 또한 쿼리 변수를 첨부하는 대신 포스트를 통해 json 데이터 문자열을 전달하는 것을 검토할 것입니다.
$.post(jSONurl, $.toJSON({orderID: thisOrderID, variationID: thisVariationID, quantity: thisQuantity, callback: false}))
다음과 같이 추가하면 이해할 수 있을 것 같습니다.
$.ajax({
statusCode: {
500: function() {
alert("error");
}
},
url:jSONurl+'?orderID='+thisOrderID+'&variationID='+thisVariationID+'&quantity='+thisQuantity+'&callback=?',
async: false,
type: 'POST',
dataType: 'json',
success: function(data) {
if (data.response == 'success'){
//show the tick. allow the booking to go through
$('#loadingSML'+thisVariationID).hide();
$('#tick'+thisVariationID).show();
}else{
//show the cross. Do not allow the booking to be made
$('#loadingSML'+thisVariationID).hide();
$('#cross'+thisVariationID).hide();
$('#unableToReserveError').slideDown();
//disable the form
$('#OrderForm_OrderForm input').attr('disabled','disabled');
}
},
error: function(data){
alert('error');
}
})
나는 ajax 호출에서 dataType:json을 제거했고 오류를 발견할 수 있었습니다.이러한 상황에서 저는 다행히 반환된 jSON의 내용이 필요하지 않습니다. 단지 반환되는 오류가 있다는 것만 알고 있기 때문에 현재로서는 이것으로 충분합니다.Firebug는 여전히 쉿쉿 소리가 나지만 오류가 있을 때 최소한 몇 가지 작업을 수행할 수 있습니다.
$.ajax({
url:'http://example.com/jsonservice/LiftieWeb/reserve?token=62e52d30e1aa70831c3f09780e8593f8&orderID='+thisOrderID+'&variationID='+reserveList+'&quantity='+thisQuantity+'&callback=?',
type: 'POST',
success: function(data) {
if (data.response == 'Success'){
//show the tick. allow the booking to go through
$('#loadingSML'+thisVariationID).hide();
$('#tick'+thisVariationID).show();
}else{
//show the cross. Do not allow the booking to be made
$('#loadingSML'+thisVariationID).hide();
$('#cross'+thisVariationID).hide();
$('#unableToReserveError').slideDown();
//disable the form
$('#OrderForm_OrderForm input').attr('disabled','disabled');
}
},
error: function(data){
alert('error');
}
})
언급URL : https://stackoverflow.com/questions/10907733/handle-500-errors-in-json-jquery
반응형
'programing' 카테고리의 다른 글
Python에서 로깅을 위한 타임스탬프 인쇄 (0) | 2023.08.15 |
---|---|
jQuery에서 [0]을 사용하지 않고 첫 번째 요소를 얻으려면 어떻게 해야 합니까? (0) | 2023.08.15 |
제출 시 확인란 값을 가져오는 중 (0) | 2023.08.15 |
npm ERR!EEXIST 삭제/코드 거부 (0) | 2023.08.15 |
표 행에서 slideDown(또는 표시) 기능을 사용하는 방법은 무엇입니까? (0) | 2023.08.15 |