Как повторить запрос если вернулся 404 в jsonp? Javascript

945
04 января 2017, 04:21

Здравствуйте, пишу код на Vanilla Js. Суть в том, что я получаю запросы с сервера используя jsonp, и иногда по неведанной мне причине прилетает 404. Вообщем надо повторить запрос если вдруг вылетит 404. Заранее спасибо за ответ!

Answer 1

Неплохо увидеть бы Ваш код.

Нет возможности узнать статус ответа, если загружается через тэг script.
Единственное, что можно сделать, это понять что загрузка неудачна.
У тэгов script, img, link и iframe можно установить коллбэки на onload и onerror:

let jq = document.createElement("SCRIPT"); 
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"; 
document.body.appendChild(jq); 
 
jq.onload  = _ => console.info("jQuery успешно загружен!"); 
jq.onerror = _ => console.info("Ошибка с jQuery!"); 
 
 
let _404 = document.createElement("SCRIPT"); 
_404.src = "https://example.com/_NotFoundScript.js"; 
document.body.appendChild(_404); 
 
_404.onload  = _ => console.info("_404 успешно загружен о_О!"); 
_404.onerror = _ => console.info("Ошибка с _404!");

В теле коллбэка ошибки просто запускаем повтор запроса.

В тему.

READ ALSO
Прототипное наследование

Прототипное наследование

Добрый ДеньИзучаю способы организации наследования в JavaScript и написал небольшой пример :

873
Javascript. Как передать аргументом в функцию css selector?

Javascript. Как передать аргументом в функцию css selector?

Напишем функцию changeCss, которая принимает селектор selector, свойство CSS property и значение для этого свойства value:

1018
Как сделать, что бы при каждом ajax все функции запускались заново

Как сделать, что бы при каждом ajax все функции запускались заново

Как сделать, чтобы при срабатывание функции ajax, которая добавляет новые элементы на страницу, запускались функции из других скриптовСкрипты...

1014
jQuery DataTables - добавить строку в таблицу

jQuery DataTables - добавить строку в таблицу

Дано: MySQL, Java - сервлеты, jQuery DataTables

1251