Странное поведение pjax: запрос GET начинается после запроса pjax

Вопрос:

Проблема в том, что как только pjaxed запрос заканчивается, pjax также инициирует обычный запрос GET.

Мои коды выглядят так:

$(document).on('pjax:end', function(event){
alert("end");
inpjax = false;
});

$(document).on('pjax:timeout', function(event) {
alert("timeout")
event.preventDefault();
});

$(document).on('pjax:error', function() {
alert("error");
});

$(document).on('pjax:success', function() {
alert("success");
});

$(document).ready(function(e) {
inpjax = false;
$('.pj').click( function(e) {
e.preventDefault();
if(!inpjax)
{
inpjax = true;
$.pjax({
timeout:    5000,
url:        $(this).attr('href'),
container:  '#codeport'
});
}
});
});

Как вы можете видеть, он должен дать мне предупреждение о разных стихациях, но я только получаю предупреждение о событии pjax: end, и после этого оповещения pjax инициирует обычный запрос GET, выбор времени выглядит так:

[17:36:02.002] GET http://localhost/abstract?_pjax=%23codeport [HTTP/1.1 200 OK 86 ms]
[17:36:02.170] GET http://localhost/abstract [HTTP/1.1 200 OK 73 ms]

Я не получаю предупреждение о превышении времени ожидания, ошибке или успехе.

Что может быть причиной этого? Пожалуйста помоги…

РЕШЕНИЕ:

Проблема заключалась в том, что мой серверный код отвечал полной страницей, и это вызывало второй запрос GET. Поэтому, если эта проблема возникает и с вами, убедитесь, что ваш код на стороне сервера отвечает правильно на запросы PJAX.

Лучший ответ:

пример:

<!DOCTYPE html>
<html>
<head>
  <!-- styles, scripts, etc -->
</head>
<body>
  <h1>My Site</h1>
  <div class="container" id="pjax-container">
    Download content from <a href="/page/2"> the other site </a>?.
  </div>
</body>
</html>

Попробуйте добавить pjax к элементу, который вы хотите получать сообщения о событиях, например $(document).pjax('a', '#pjax-container')

Оцените статью
TechArks.Ru
Добавить комментарий