Jquery Ajax Post无法在所有浏览器中随机返回

时间:2012-08-14 21:32:54

标签: php jquery ajax json iis

我有一个高度ajax运行的网站,除了一个特定的Ajax调用之外,一切都运行得很顺利。在随机数量的呼叫之后,似乎永远不会回来。这不是缓存问题,因为我已经使用$ ajax.Setup关闭了缓存,它也是随机发生的,而不仅仅是在第一次调用之后。一旦它发生,它将无法再次工作,直到我刷新页面。我已经确认它与服务器上的脚本无关,因为我出于测试目的,我只是让它立即返回。

这个调用唯一独特的是我传递一个动态创建的相当大的json对象。我想知道json对象的构造是否有错误,虽然我有点怀疑它因为我相信同一个JSON对象可以传递一次并且工作而不是再次传递。所以,我现在唯一的理论是它是我最长的ajax调用并多次调用它只是超载了一些服务器阈值。有人对这个有了解吗?我正在运行PHP和IIS。

以下是我使用的简单代码:

$.post("<?=$_SERVER['PHP_SELF']?>?ajax=editType", {id1: id1, id2: id2, json: jsonString}, function(data) {
    console.log(data);                  
}, "html").error(function(xhr, status, error) {
    alert("Error: " + status);
});

json字符串是:

{"0":{"part_type_column_id":"526","displayable_name":"Fourth","column_number":1,"default_visible":"on","datatype":"Radio Button","value_options":"First Radio,Second Radio,Third Radio,Fourth Radio,Fifth Radio"},"1":{"part_type_column_id":"525","displayable_name":"Fifthd","column_number":2,"default_visible":"on","datatype":"Checkbox"},"2":{"displayable_name":"asdf","column_number":3,"default_visible":"on","datatype":"Text"}}

如果我在没有立即返回之后继续发送此ajax调用,它将停止该站点上的所有ajax,直到它超时。在看似永远消失之后,它会超时并最终警告“错误”。

知道为什么会这样吗?我能想到的是达到某种最大转移限制。

3 个答案:

答案 0 :(得分:1)

你没有回应$ _SERVER ['PHP_SELF']。您的标记需要更改为调用echo,或者只使用

答案 1 :(得分:1)

您不打印变量$ _SERVER ['PHP_SELF']。用途

<?=$_SERVER['PHP_SELF']?> 
or
<? echo $_SERVER['PHP_SELF']?> 

答案 2 :(得分:1)

几天前我遇到了同样的问题。在我的情况下,返回代码为0。 这类问题有两种情况。 1.如果您正在进行跨域调用,浏览器会拒绝您的ajax。和 2.如果服务器端出现问题,不允许执行ajax并立即断开连接。

我的案子是第二名。我在我的服务器上运行了一个恶魔,它正在监视服务器上的每个呼叫。在建立连接之前,这个恶魔正在放弃我特定的ajax调用。我停了下来然后那个特别的ajax又开始工作了。我想知道你的情况是否也是同样的原因。

感谢。