Обратный вызов jsonp jQuery не срабатывает через некоторое время - PullRequest
2 голосов
/ 15 февраля 2011

Я использую ajax-метод jQuery для отправки jsonp-запросов на мой сервер (время от времени я делаю запрос).Обычно это работает просто отлично, сервер возвращает ответ и срабатывает моя функция обратного вызова «success».

Проблема в том, что через некоторое время функция успеха перестает вызываться, даже если я получаю успешный ответ отсервер.Когда это происходит, каждый последующий запрос jsonp также «терпит неудачу» (даже из других мест в коде и \ или по другим путям на моем сервере).

Вещи, которые я проверял:

  1. Ответ от сервера действителен (так же, как и другие успешные ответы).

  2. Функция обратного вызова jsonpXXX, которую создает jQuery, действительно определена глобально.

  3. Когда я открываю несколько браузеров на одной странице, это происходит не во всех из них.

Мой код на стороне клиента:

$.ajax({
    type: "GET",
    url: SOME_URL,
    dataType: "jsonp",
    data: {...},
    success: function(data) {
        alert("This function is not always being called :( ");
    }
});

Любые идеи \ помощь будут с благодарностью:)

1 Ответ

4 голосов
/ 21 февраля 2011

Вы можете получить успешный ответ от сервера, но могут быть некоторые проблемы с возвращенным текстом JSONP.Если при синтаксическом анализе ответа возникнут какие-либо ошибки, вызов функции обратного вызова завершится неудачей.

Также я предлагаю использовать альтернативное решение для реализации JSONP JSONP , которое упрощает запросы JSONP.

...