-1

我有一个带有 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 代码中犯了一个错误?

最好的问候

多梅尼科

4

2 回答 2

1

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

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

于 2009-01-26T17:55:01.450 回答
0

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

服务器代码是:

//后端一些.php

< ?

//模拟长任务

睡眠(10);//睡眠10秒

//发送响应

echo "一些测试数据";

? >

抱歉,逗号错误是我的剪切和粘贴错误..

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

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

于 2009-01-27T08:42:36.447 回答