我有一个高度 ajax 运行的网站,除了一个特定的 Ajax 调用之外,一切都运行得像黄油一样流畅。 经过随机次数的调用后,它似乎永远不会返回。 这不是缓存问题,因为我已关闭$ajax缓存。设置,它也是随机发生的,而不仅仅是在第一次调用之后。 但是,一旦发生,在我刷新页面之前,它将无法再次工作。 我已经确认它与服务器上的脚本无关,因为我出于测试目的,我只是让它立即返回。
此调用唯一独特的是我传递了一个动态创建的相当大的 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,直到它超时。 在似乎需要很长时间之后,它将超时,最后只是提醒"错误"。
知道为什么会发生这种情况吗? 我能想到的只是达到某种最大传输限制。
前我遇到了同样的问题。在我的情况下,返回代码是0。这类问题有两种情况。1. 如果您正在进行跨域调用并且浏览器拒绝您的 ajax。和2.如果您的服务器端出现问题,不允许ajax立即执行和断开连接。
我的案子是第二个。我在我的服务器上运行一个恶魔,它正在监视服务器上的每个调用。这个恶魔甚至在建立连接之前就放弃了我的特定 ajax 调用。我停止了它,然后那个特定的ajax又开始工作了。我想知道在你的情况下是否也是同样的原因。
谢谢。
你不是在回声 $_SERVER['PHP_SELF']。您的标签需要更改为呼叫回声,或者仅使用
您没有打印变量 $_SERVER['PHP_SELF']。 用途
<?=$_SERVER['PHP_SELF']?>
or
<? echo $_SERVER['PHP_SELF']?>