Таинственный выпуск AJAX - PullRequest
       4

Таинственный выпуск AJAX

2 голосов
/ 16 декабря 2010

Обновление:

Хорошо, это не проблема с тайм-аутами. Я вынул все дорогие части PHP-скрипта и заставил его просто вывести [1,2,3], чтобы он не истек Все еще не работает , так что, очевидно, я делаю что-то действительно умственное.

Все это:

sparql_url = "http://royiv.dyndns-ip.com/websci/git/clean_payroll_json.php";

function foo(response)
{
    alert("foo called.");
    alert(response);
    hers = response["DOE, JANE"];
    alert(hers);
}

function bar(request, stat, err)
{
    alert("Something messed up.");
    alert(err);
}

$.ajax({
    url: sparql_url,
    dataType: 'json',
    error: bar,
    success: foo,
    timeout: 20 * 1000
});

Вывод «foo named», «null», а затем JS завершается.

Просмотр перевода в Wirshark показывает, что ответ отправлен. Firebug ничего не показывает на вкладке «Response», но показывает Content-Length 7.


Оригинальный вопрос:

У меня странная проблема с тайм-аутом в jQuery. Через 10 секунд что-то завершает запрос, но я не уверен, что. Когда я наблюдаю HTTP-запрос в Wireshark, примерно через 10 секунд Firefox начинает отправку RST на сервер, закрывая соединение. Вот как я выполняю запрос:

$.ajax({
    url: sparql_url,
    error: bar,
    success: foo,
    timeout: 20 * 1000
});

По истечении времени ожидания вызывается foo, функция success , не обратный вызов ошибки . Это заставляет меня думать, что jQuery этого не делает, но я не уверен здесь. Что тут происходит? (URL-адрес медленный, но на самом деле он отвечает примерно за 10 секунд. Он отправляет обратно данные JSON.)

Ответы [ 2 ]

2 голосов
/ 16 декабря 2010

В вашем phpscript установите заголовок «Content-Type» для application / json вместо text / html.

0 голосов
/ 16 декабря 2010

Можете ли вы проверить данные ответа с помощью wireshark? Если ответ пуст, значит, что-то не так с php-скриптом. Возможно, скрипт php выдает пустой ответ, если он вызывается с помощью javascript (отсутствует заголовок http, например, пользовательский агент, язык, кодировка, ...).

просто предположение ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...