Проверка успешной загрузки JQuery AJAX - PullRequest
4 голосов
/ 01 июня 2009

Я использовал это для загрузки другой страницы и просто использовал их пример:

$("#links").load("/Main_Page #jq-p-Getting-Started li");

Однако я хочу запустить функцию, когда загрузка прошла успешно, и другую, если она не удалась, к сожалению, в описании обратного вызова сказано:

Функция вызывается, когда запрос ajax завершен (не обязательно успешен).

Как убедиться, что загрузка прошла успешно?

Спасибо.

Ответы [ 4 ]

20 голосов
/ 01 июня 2009

Проверьте textStatus ответа.

$("#links").load("/Main_Page #jq-p-Getting-Started li", 
  function (responseText, textStatus, XMLHttpRequest) {
    if (textStatus == "success") {
         // all good!
    }
    if (textStatus == "error") {
         // oh noes!
    }
  }

В решении выяснить вопрос:

JSBin пример success и fail

2 голосов
/ 02 июня 2009

Вы можете попробовать использовать более детальный вызов метода $ .ajax (). Это даст вам более детальный контроль над вызовом AJAX (но это также требует немного больше работы, чем простой .load ().) Это позволит вам вызывать различные функции в зависимости от того, вернет ли ваш вызов успех или ошибку. 1001 *

Проверьте: http://docs.jquery.com/Ajax/jQuery.ajax#options для документации по этой функции. Если вы перейдете на вкладку «Параметры» на этой странице, вы получите полный список параметров, которые вы можете передать в функцию $ .ajax ().

1 голос
/ 01 июня 2009

Вторым аргументом вашего обратного вызова является значение состояния строки для запроса, которое будет одним из "beforeSend", "success", "complete" и "error".

0 голосов
/ 04 февраля 2017

Я использую эту функцию, и она работает для меня:

$.ajax({
   url: "demo_test.txt", 
   success: function(result){
       location:reload();
   }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...