У меня такая странная проблема, что jquery.load иногда терпит неудачу на хроме. Я не собираюсь беспокоить вас, ребята, с подробностями, я просто ищу ссылку на то, как я могу отладить такую проблему?
Я подумал, может быть, Firebug может помочь, но проблема возникает только на хроме (даже работает на IE).
Я делаю что-то вроде:
$("#contentid").html("Plz wait."); $("#contentid").load(url); $("#contentid").show();
Я получаю только «Plz wait» на #contentid, и я вижу, что URL-адрес получает вызов и проверяет его вручную и видит, что он преуспевает.
UPDATE2:
поэтому я изменил запросы на загрузку в соответствии с предложениями
$('#conentid').load(url, function(response, status, xhr){ alert('Load was performed. url:' + url); if (status == "error") { alert("text: " + xhr.statusText); alert("readyState: "+xhr.readyState+"\nstatus: " + xhr.status); alert("responseText: "+xhr.responseText); } else { $("#conentid").show(); } });
Я получаю статус == 'error', когда возникают ошибки.
xhr.statusText: 0
xhr.readyState: 4
xhr.statusText и xhr.responseText пусты
любая идея почему? что это значит?
URL работает вручную. и эта ошибка происходит только на хроме, и только иногда
У Chrome действительно есть неплохие инструменты для разработчиков. Нажмите значок гаечного ключа, выберите инструменты разработчика из меню.
По этой конкретной проблеме, я готов поспорить, что шоу вызывается до завершения загрузки – загрузка происходит асинхронно. Настройте обработчик событий для «on load» на #contentid
и сделайте шоу в этом.
Обновить
На самом деле, есть лучший способ сделать это ; поместите свое show
в обратный вызов функции load
:
$('#conentid').load('ajax/test.html', function() { alert('Load was performed.'); $('#contentid').show(); });
Еще одно обновление
Хорошо, состояние готовности 4 указывает, что XmlHTTPRequest закончен в обычном режиме. Теперь здесь есть одна двусмысленность: xhr.statusText 0 или он пуст? Какие результаты вы видите из этого кода (включая код ошибки) в другом браузере?
Если он работает с firefox и иногда работает только в Chrome, у вас может быть фактическая ошибка Chrome.
Может быть, у кого-то может быть объяснение этого ответа, но проблема была в следующем:
У меня был базовый href TAG ( <base href="http://domain.com/" />
)
Есть несколько ссылок на проблемы с использованием jquery + base href. Я понятия не имею, почему, но удаление этой строки все исправило . спасибо за вашу помощь, я узнал некоторые веб-отладки \ ajax советы в этом процессе.