jQuery.ПОЛУЧИТЬ прерывистый сбой в Safari на ipad

#javascript #jquery #promise

#javascript #jquery #обещаю

Вопрос:

У меня есть следующая служебная функция, которую я использую как стандартный способ добавления заголовков к HTTP-запросу GET.

 const get1 = function(url, callback) {
    console.log("in get1 with url : "   url);

    return new Promise(function(resolve, reject) {
        firebase.auth().currentUser.getIdToken()
            .then(function(idToken) {
                return {
                    'Authorization': 'Bearer '   idToken,
                    'ACTING_ON_BEHALF_OF': ns.actingAs
                };
            })
            .then(function(headers) {
                resolve($.get({
                    url: url,
                    headers: headers,
                    dataType: "json",
                    error: function(jqXHR, textStatus, errorThrown) {
                        alert(textStatus);
                        alert(errorThrown);
                        alert(jqXHR.responseText);
                    }
                }));
            });
    });
};
  

Я вызываю его со структурами, похожими на это

 const targetUrl = ns.operation   "/"   ns.stage   "/"   ns.category;

utils.get1("/api/gameconfig/v1/oddoneout/"   targetUrl)
    .then(function(data) {
            console.log("THEN Block")
            // blah blah blah
    });
  

Похоже, это надежно работает во всех браузерах, кроме Safari на iPad, где периодически появляется запрос GET, но .then блок никогда не вводится.

Отладка javascript, похоже, указывает на то, что HTTP-запрос все еще выполняется, но серверная сторона, похоже, считает, что она успешно выполнила запрос и вернула ответ.

Я в недоумении, почему я вижу такое поведение. Похоже, что в этом нет никакой закономерности. Иногда я могу без проблем выполнить 50 вызовов, иногда это происходит более или менее мгновенно.

Любая помощь будет принята с благодарностью, даже если это подсказки о том, как это отладить.

Я использую jQuery 3.3.1, если это имеет какое-либо значение.

Комментарии:

1. Добавьте обработчик ошибок и посмотрите, в чем заключается ошибка.

2. @epascarello: не будут ли вызываться предупреждения в функции ошибок, если произошла ошибка?