programing

오류 jqxhr에 대한 Ajax GET URL

cafebook 2023. 8. 16. 22:36
반응형

오류 jqxhr에 대한 Ajax GET URL

서버 사이드 코드에서 오류 처리 이벤트를 트리거하는 데 고의로 실패한 Ajax 요청이 있습니다.여기서 시도한 URL을 알 수 있을까요?저는 그 URL을 가져와서 하이퍼링크에 삽입하고 요청을 다시 시도하고 싶습니다.

이것이 가능합니까?

EDIT 시도된 URL 요청을 확인할 수 있습니다.FireBug그리고 다음을 통해 jqxhr 객체를 검사했습니다.console.dir()호출하려고 한 URL을 식별하는 데 도움이 되는 것을 찾을 수 없습니다.전역 변수를 저장하지 않는 것이 이상적입니다. 인수에서 이 값을 얻기를 희망했습니다.

잘 부탁드립니다, O.

$.ajax({
    type: 'get',
    url: 'somewhere/foo',
    context: this,
    success: this.mySuccess,
    error: this.myError,
    cache: false
});

myError = function (jqXhr, textStatus) {
    alert(jqXhr.url); //Get url of failed request and inject it into hyper link?
};

저장url변수로그리고 오류 기능에서 사용할 수 있습니다.분명히 url은 ajax 요청의 url 매개 변수에 제공된 것과 같을 것입니다.

var url = 'somewhere/foo';

$.ajax({
    type: 'get',
    url: url,
    context: this,
    success: this.mySuccess,
    error: this.myError,
    cache: false,
    error: function(jqXHR, exception) {
       //use url variable here   
    }
});

다른 옵션은 다음과 같습니다.

$.ajax({
    type: 'get',
    url: 'https://google.com',
    context: this,
    success: this.mySuccess,
    error: this.myError,
    cache: false,
    beforeSend: function(jqXHR, settings) {
        jqXHR.url = settings.url;
    },
    error: function(jqXHR, exception) {
        alert(jqXHR.url);
    }
});

피들

가장 간단한 방법은 다음과 같습니다.

this.url

thisurl 특성을 가진 ajax 설정 개체로 제한해야 합니다.

@KhawerZeshan 답변에 추가.전 세계적으로 Ajax보다 먼저 설정하는 것이 좋습니다.

$.ajaxSetup({
    beforeSend: function(jqXHR, settings) {
        jqXHR.url = settings.url;
    }
});

비동기 대기와 함께 사용하는 경우 이 방법을 사용합니다.

try {
   await $.get('http://example.com');
} catch(e) {
   console.log(e.url);
}

가장 쉬운 방법은 오류 콜백 컨텍스트의 Ajax 설정(JQueryAjaxSettings) 개체를 통해 URL에 액세스하는 것입니다.

$.ajax({
    type: 'get',   
    url: 'somewhere/foo',    
    error: function() {
        alert(this.url);
    }
});

언급URL : https://stackoverflow.com/questions/18763182/ajax-get-url-on-error-jqxhr

반응형