예상 오류는 내가 코드에서 예상하거나 심지어 제기 한 서버의 오류입니다. 예를 들어 사용자가 충분한 권한이없는 작업을 수행하려고하면 오류를 설명하는 메시지와 함께 PermissionError
(사용자 지정 Exception
)을 발생시킵니다.AJAX에서 예상 오류를 처리하는 방법 (사용자에게 공개하는 것을 포함)
저는 AJAX 상황에서 예상되는 오류를 처리 할 수있는 좋은 방법을 찾고 있습니다. 유일한 요구 사항은 오류 메시지를 사용자에게 표시 할 수 있도록하는 것입니다. 사용자의 상황을 계속 유지하려고합니다.
내 현재의 접근 방식은 JSON 객체로 오류 메시지를 포장하고 클라이언트 엔드 나는 확실하지 않다 마음에 다른 접근 방식을 가지고
var ajaxResponse = $.ajax({
....
});
ajaxResponse.done(function(jsonObj) {
if (jsonObj.success) {
/* no error, do something */
}
else {
/* expected error returned, display jsonObj.error to user */
}
});
ajaxResponse.fail(function(jqXHR, textStatus, errorThrown) {
/* unexpected error returned */
});
로 다시 보내된다. 기본적으로 예상되는 오류 메시지를 JSON 객체에 패키징하는 대신 내 장고 코드에서 HttpResponse(content="no sufficient privilege", status=403)
을 반환합니다. 클라이언트 측 jQuery는 다음과 같이 수정 될 것입니다 :
ajaxResponse.done(function(response_data) {
/* no error, do something */
});
ajaxResponse.fail(function(jqXHR, textStatus, errorThrown) {
/* both expected and unexpected error would end up here.
* It's an expected error when error code is 403 and
* jqXHR.responseText would give me the error message to
* display to the user.
*/
});
나는 두 번째 방법이 모든 오류를 한 곳에서 예상하거나 예상치 못한 방식으로 분류하는 것을 좋아합니다. 그러나 그런 다음 http 상태 코드를이 방법으로 사용해서는 안된다는 느낌이 들었습니다. 어쨌든, 어느 것이 올바른 길인지 알고 싶습니다. 둘 다 아니라면 무엇을 할 것인지 알려주십시오.
. "하지만, 내가 HTTP 상태 코드는이 방법을 사용하지 않아야 느낌이"- –
@AnthonyGrist - T.J.와 동일한 관점을 공유합니다. Crowder. 여기 그가 [다른 SO 게시물] (http://stackoverflow.com/a/6701385/338961)에서 말해야만했던 것이 있습니다. – tamakisquare