好的,这不是超时问题。我拿出了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 called”,“null”,然后JS被终止。
在Wirshark中查看转移显示响应已发送。 Firebug在“响应”选项卡中不显示任何内容,但显示内容长度为7。
我对jQuery有一个奇怪的超时问题。 10秒后,某事正在终止请求,但我不确定是什么。当我在Wireshark中观看HTTP请求时,大约10秒钟,Firefox开始向服务器发送RST,关闭连接。以下是我执行请求的方式:
$.ajax({
url: sparql_url,
error: bar,
success: foo,
timeout: 20 * 1000
});
超时后,foo
,成功功能正在被调用,不是错误回调。这让我觉得jQuery没有这样做,但我不确定这里。这里发生了什么? (URL很慢,但它实际上只在大约10秒内响应。它正在发回JSON数据。)
答案 0 :(得分:2)
在你的phpscript中,将“Content-Type”标题设置为application / json而不是text / html。
答案 1 :(得分:0)
您可以使用wireshark检查响应数据吗?如果响应为空,则php脚本有问题。如果javascript调用它,可能会生成一个空的响应(缺少一些像用户代理,语言,编码等的http标题)。
只是一个猜测...