【问题标题】:JQuery timeout not executeJQuery超时不执行
【发布时间】:2010-10-03 14:16:52
【问题描述】:

我有一个带有 JQuery 的 js 客户端,这个 js 调用一个页面(GET HTTP)并设置超时。超时的目的是:“如果服务器没有响应就做点什么”。 如果我使用 Apache Web 服务器来管理页面,则会执行超时。如果我使用 IIS 6.0,超时将被“跳过”并且页面尝试(无论如何)服务器响应。 这是脚本:

//客户端

$.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 .... ");
    }
}); 

我想那是一个 IIS.. 对吗?还是我在 JQuery 代码中犯了一个错误?

最好的祝福

多梅尼科

【问题讨论】:

  • 你错过了一个 , 超时后
  • -1 用于使用 Stack Overflow 查找语法错误。

标签: jquery iis-6 timeout


【解决方案1】:

感谢您的回复,我完成了问题:)

服务器代码是:

//后端一些.php

//模拟长任务

睡眠(10); //睡10秒

//发送响应

echo "一些测试数据";

? >

对不起,逗号错误是我的剪切和粘贴错误..

问题是当超时结束时,错误对话框没有出现,因为来自服务器的连接没有被超时中断,所以服务器(缓慢)响应。

你知道因为服务器连接没有中断吗?

【讨论】:

  • 为了将来参考,您最好编辑您的问题以添加详细信息,而不是发布带有额外详细信息的答案。答案有点混乱。
【解决方案2】:

正如 Paolo 在评论中提到的,您在超时声明后缺少逗号。我最近遇到了这样一种情况,在这样的对象声明中缺少逗号会导致 IE 阻塞脚本并且无法正常运行(而 firefox 运行它没有问题)。

这并不能解释为什么不同的服务器会导致不同的行为,但可能值得首先修复并重新测试,因为行为可能会改变并且可能更容易调试。

【讨论】:

  • 我会支持这一点——我已经多次看到 Firefox 慷慨地解释以这种方式声明的 javascript 对象,IE 会因缺少的逗号而窒息。不管这是否导致他担心的问题,这都是一个问题。
猜你喜欢
  • 1970-01-01
  • 2015-02-22
  • 2015-04-05
  • 2013-04-27
  • 1970-01-01
  • 2014-12-25
  • 2010-09-16
  • 2012-11-18
  • 1970-01-01
相关资源
最近更新 更多