@Alex_mc
Веселый препод :)

Как остановить Ajax запросы при получении 401?

Вопрос к профи,
Работаю с Oauth 2.0 на PHP, токен валиден 1 час. после этого посылает ошибку 401. На страницах по 5-6 запросов Ajax (Jquery).
Если токен просрочен выходит Lightbox с формой логина.

Подскажите как можно остановить все запросы если один запрос получил ошибку 401? может я не правильно отправляю запрос?

вот JS код
function ajaxAPI(type, API, data, onSuccess) {
	$.ajax({
		url: APIURI+API+ '.php',
		beforeSend: function (xhr) {
	    	xhr.setRequestHeader('Authorization', 'Bearer ' + localStorage.getItem("storToken"));
		},
		// jsonp: "callback",
		type: type,
		dataType: dataType,
		data: {"API" : API, "data": JSON.stringify(data)},
		success: onSuccess,
		error: onFail
	});
}

Авторизацию можно посылать и как часть data.

Подскажите как написать onFail так чтоб при первом запросе остановил Ajax и выдал ошибку?
может есть более лучший вариант?
  • Вопрос задан
  • 2391 просмотр
Решения вопроса 1
MintTea
@MintTea
function ajaxAPI() {
    var xhr = $.ajax({
        statusCode: {
            401: function(){
                if (typeof document.xhrRequests !== 'undefined') {
                    document.xhrRequests.forEach(function(xhr, index){
                        xhr.abort();
                    });
                }
            }
        }
    });

    if (typeof document.xhrRequests === 'undefined') {
        document.xhrRequests = [];
    }
    
    document.xhrRequests.push(xhr);
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы