Обновление:
Хорошо, это не проблема с тайм-аутами. Я вынул все дорогие части 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.)