我发现使用JQuery超时有问题,我有一个带脚本的页面,它设置了超时并等待来自服务器的响应。问题是当超时必须执行时,简而言之,它是“无动作”。我认为该脚本不会中断与服务器的连接并等待服务器响应,因为在服务器端连接开启10秒(但超时设置为5秒)。 当服务器在不同的域名然后客户端工作时,我看到这个问题,而当服务器和客户端在本地工作时,这个问题没有。
您有没有想法,因为发生了此错误或如何关闭脚本连接?
// client
$.ajax({
type: "GET",
url: "some.php",
data: "name=John&location=Boston",
timeout: 5000,
success: function(msg){
alert( "Data Saved: " + msg );
},
error: function(request, errorType, errorThrown){
alert("opppsssss .... ");
}
});
和服务器代码:
//some.php
< ?
//simulate long task
sleep(10); //sleep 10 seconds
//send response
echo "some test data";
? >
最好的问候
多梅尼科
答案 0 :(得分:3)
你的外表是从前到后做的。您已将超时设置为5000毫秒(5秒),因此如果服务器端代码响应时间超过5秒,则会超时。你正在睡觉(10);它会休眠10秒,这是指定超时的两倍。解决这个问题的方法是执行以下操作:
// client
$.ajax({
type: "GET",
url: "some.php",
data: "name=John&location=Boston",
timeout: 10000,
success: function(msg){
alert( "Data Saved: " + msg );
},
error: function(request, errorType, errorThrown){
alert("opppsssss .... ");
}
});
服务器代码:
//some.php
< ?
//simulate long task
sleep(5); // sleep 5 seconds!
//send response
echo "some test data";
? >
希望这有帮助。