codememo

오류 콜백에 사용할 AJAX 응답 본문을 가져오는 중

tipmemo 2023. 3. 4. 14:57
반응형

오류 콜백에 사용할 AJAX 응답 본문을 가져오는 중

jQuery의 AJAX 오류 함수에는 다음 파라미터가 있습니다.

error(XMLHttpRequest, textStatus, errorThrown)

응답 본문을 얻는 가장 좋은 크로스 브라우저 방법은 무엇입니까?

이 기능은 모든 브라우저에서 작동합니까?

$.ajax({
  error: function(http) {
    alert(http.responseText);
  }
});

jQuery 1.4.1에서는 다음을 사용해야 합니다.

var json = JSON.parse(xhr.responseText);

http://api.jquery.com/jQuery.parseJSON/ 를 참조해 주세요.

jquery 1.5 이후의 최신 일반적인 답변을 얻으려면 다음 개체를 사용합니다.

$.ajax(url).fail(function(jqXHR, textStatus, errorThrown) {
    alert(jqXHR.responseText);
})

또는 이미 구문 분석된 응답 본문을 가져오는 데 사용할 수 있습니다.

$.ajax(url).fail(function(jqXHR, textStatus, errorThrown) {
    console.log(jqXHR.responseJSON);
})

jQuery를 사용한 간단한 사용 예:

var url = '/';
$.get(url).then(
  function(response) {
      $("#result").html(response);
  },
  function(jqXHR) {
    $("#result").html('Error occurred: '+ jqXHR.statusText + ' ' + jqXHR.status);
  }
); 

그러면 현재 웹 사이트의 첫 페이지에 있는 HTML이 반환됩니다.

그런 다음 존재하지 않는 넌센스 URL을 입력해보고 에러가 발생했음을 확인합니다.웹 서버에서 "404 Not Found"를 받아야 합니다.테스트: JSFiddle은 이쪽

응답이 CORS 검사를 통과하지 못할 경우 차체를 받을 수 없습니다.

XHR에서 데이터를 추출할 수 있는 숨겨진 함수가 있습니다.

var responseText = $.httpData(xhr)

합격하면"json"두 번째 파라미터로 응답을 JSON 문자열로 처리합니다.

응답이 없기 때문에(네트워크의 문제 등) 에러가 표시되는 경우가 있습니다.그 사건도 꼭 취재해 주세요.또, jQuery는 (확실하지 않은) 다음 명령어를 호출합니다.error서버가 반환하는 경우 핸들러4xx또는5xx상황.

언급URL : https://stackoverflow.com/questions/2084484/getting-ajax-response-body-for-use-in-error-callback

반응형