Я работаю над мобильным мобильным устройством Cordova. Я вызываю API для загрузки данных в свои переменные и обработки их. Ниже приведена проблема.Ajax вызов не работает сначала, но успешный вызов после этого
Во-первых, я называю API с помощью ajax. После вызова ajax, я проверяю, является ли jsonString пустым, и если это так, я перезагружаю страницу, чтобы снова запустить вызов ajax.
$.ajax({
url: GetConfigUrl // working URL,
type: 'POST',
data: {
token: '123456'
},
cache: false,
datatype: 'json',
contenttype: "application/json",
success: function (data, response, xhr) {
debugger
jsonString = data.Value;
},
error: function (data) {
// do nothing
)
});
if (jsonString == '') {
// Display popup to ask user the reload the page
}
return true;
У меня есть отладчик на месте в функции успеха вызова, но он не попал и прямо идти, чтобы проверить, если jsonString пуст, который пуст, поскольку он не вызывает Аякса, чтобы загрузить данные и приступить к отобразить всплывающее окно, чтобы попросить пользователя перезагрузить страницу.
После того, как вы нажмете на перезагрузку страницы, отладчик в вызове успеха ударил и смог получить значение. Таким образом, jsonString не пуст и может продолжить.
проверить вкладку Сети в консоли, он показывает результат ниже:
Похоже, что первый звонок был сделан, но всегда остается в ожидании. Второй вызов является успешным и возвращает правильное значение. Таким образом, проверка jsonString передается.
Эта проблема возникает всегда, когда первый вызов ajax не увенчался успехом и в ожидании, но все последующие вызовы успешны.
Так что, может быть, неправильно? Как обеспечить, чтобы первый вызов ajax был успешно выполнен и возвращал данные все время?