Я знаю, что прошло много времени с тех пор, как кто-то ответил здесь, и постер, вероятно, уже получил свой ответ либо отсюда, либо откуда-то еще. Однако я думаю, что этот пост поможет любому, кто ищет способ отслеживать ошибки и тайм-ауты при выполнении запросов getJSON. Поэтому ниже мой ответ на вопрос
Структура getJSON выглядит следующим образом (находится в http://api.jqueri.com):
$(selector).getJSON(url,data,success(data,status,xhr))
большинство людей реализуют это, используя
$.getJSON(url, datatosend, function(data){
//do something with the data
});
, где они используют переменную url для предоставления ссылки на данные JSON, отправку данных в качестве места для добавления "?callback=?"
и других переменных, которые необходимо отправить для получения правильных возвращаемых данных JSON, и функцию успеха в виде функция для обработки данных.
Однако вы можете добавить переменные status и xhr в вашу функцию успеха. Переменная состояния содержит одну из следующих строк: «success», «notmodified», «error», «timeout» или «parsererror», а переменная xhr содержит возвращенный объект XMLHttpRequest
( найдено в w3schools )
$.getJSON(url, datatosend, function(data, status, xhr){
if (status == "success"){
//do something with the data
}else if (status == "timeout"){
alert("Something is wrong with the connection");
}else if (status == "error" || status == "parsererror" ){
alert("An error occured");
}else{
alert("datatosend did not change");
}
});
Таким образом, легко отслеживать таймауты и ошибки без необходимости реализовывать специальный трекер тайм-аута, который запускается после выполнения запроса.
Надеюсь, это поможет кому-то еще найти ответ на этот вопрос.