Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Jquery Ajax Post无法在所有浏览器中随机返回_Php_Jquery_Ajax_Json_Iis - Fatal编程技术网

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

Php Jquery Ajax Post无法在所有浏览器中随机返回,php,jquery,ajax,json,iis,Php,Jquery,Ajax,Json,Iis,我有一个运行ajax的网站,除了一个特定的ajax调用外,其他一切都运行得很顺利。在一次随机的呼叫之后,它似乎再也不会回来了。这不是缓存问题,因为我已经用$ajax.Setup关闭了缓存,而且它也是随机发生的,而不仅仅是在第一次调用之后。但一旦发生这种情况,在我刷新页面之前,它将无法再次工作。我已经确认它与服务器上的脚本无关,因为出于测试目的,我刚刚让它立即返回 这个调用唯一的独特之处是我传递了一个动态创建的相当大的json对象。我想知道json对象的构造中是否有错误,尽管我有点怀疑,因为我相信

我有一个运行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);
});
如果我在没有立即返回后继续发送这个ajax调用,它将停止站点上的所有ajax,直到超时为止。在看起来需要很长时间之后,它将超时,最后只会发出“错误”警报


知道为什么会这样吗?我所能想到的就是达到了某种最大传输限制。

您没有响应$\u SERVER['PHP\u SELF']。您的标记需要更改为callecho,或者只使用您不打印变量$\u SERVER['PHP\u SELF']。使用

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

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

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


谢谢。

也许是
-这应该是
很好的捕获,但这不是问题所在。我更新了我的代码,没有什么不同。实际上,它甚至不需要在那里打印,因为一个空字符串仍然会再次进入同一页-这就是为什么它在最初几次工作的原因。我确实更新了我的代码,问题并没有消失。还有其他想法吗?你在帖子的某个地方提到了IIS。“这可能与节流有关吗?”戈登帕罗,我就是这么想的。不幸的是,我对IIS知之甚少,希望这里有人知道。这一定与通过ajax发送太多信息有关,但这很奇怪,因为我所知道的唯一类似的事情是一篇文章,而不是同一页面上的多篇文章。有什么想法吗?我想我应该更新这个问题,以防它能帮助任何人。我发现较小的ajax调用也可能挂起,只是挂起的频率较低。我一直无法找出问题的原因,但当我将完全相同的代码移动到另一台服务器时,它工作得非常好。这可能与我的IIS设置有关,或者与特定网站相关的某种类型的IIS错误有关。我在同一台服务器上编写了更重的ajax站点,没有任何问题。我想这只是作为一个程序员你必须面对的一件奇怪的事情。谢谢你的评论,但那不是问题。谢谢你的评论,但那不是问题。阅读我在原始帖子上的评论,看看原因。我从来没有发现是什么导致了这个错误,但我认为这与你的第二个案例类似。重要的是,当我更换服务器时,问题就消失了。显然,它与我的服务器有关,而不是与我的代码有关。
<?=$_SERVER['PHP_SELF']?> 
or
<? echo $_SERVER['PHP_SELF']?>