对不起,如果这有点到处都是。我有一个奇怪的问题,我不完全确定原因(因为我无法重现它,但我可以通过 apache 日志看到它存在)
我有一些代码失败,因为它传递了不正确的数据,数据通过ajax调用传递给javascript中的php脚本(使用dhtmlxAjax.post)
有时,在 ajax 调用中传递的这些数据已经从另一个 ajax 调用返回到 php 后端。
无论如何,最终结果是传递给 PHP 的数据不正确。有时我看到它试图发布整个网页内容,而不是例如一个 id。
对我来说,放入 ajax 帖子的数据是错误的(还是 $_POST 变量已损坏?)
我在某处读到连接速度慢或某些浏览器/ISP?不要在标头中发送内容长度或其他内容,apache可以将请求分块,这可能是一个潜在的问题?
我不知道我是否在吠叫错误的树,所以非常感谢任何关于如何潜在地调试这个问题的指针或提示。
目前我无法让它自己失败,但我只能看到 apache 日志中的失败查询。
谢谢
更新 1
我不认为这仅限于 ajax 调用。我一直在查看其他一些偶尔出现的错误,它们来自表单帖子(通过 javascript 使用 document.forms["myform"].submit(); )
所以这不会是一个 ajax 特定的问题。
这可能是因为 apache 的流量超载或类似的东西,因此 POST 变量乱码?
更新 2
我已经安装了 log4javascript 和 errorception(我强烈推荐!http ://errorception.com/ )
而且我注意到被调用的 URL 被破坏的奇怪情况。
我注意到 URL 字符串中的很多 GET 变量后面都有这个
¤t
例如
page.php?a=111&b=222¤t&c=333
任何想法该符号的含义是什么?
我也有几次 javascript 文件说它们无法下载
The download of the specified resource has failed.
还有一些javascript错误实例说“)预期”
但问题是当我使用它时页面永远不会失败,并且可能不会失败很多,因为没有用户抱怨任何问题。
所以我猜它在极少数情况下会失败,用户只是刷新页面。
但我想深入了解导致这些随机故障的原因。
无论如何记录apache以知道它是否未能返回页面(或变得超载?)
更新 3
好的,所以我注意到 URL 中的随机字符
参数应该说“currentClassification”
但它以“¤tClassification”的形式出现
所以网址应该是
page.php/param=1¤tClassification=2&third=3
但它的出现是
page.php/param=1&¤tClassification=2&third=3
那么这个 URL 怎么会被破坏呢?Apache、PHP 还是 JavaScript?
更新 4
只是一个快速更新,调用此 url 的行位于 php“Header”重定向中。
例如
header("Location: page.php/param=1¤tClassification=2&third=3");
exit();
这会对任何事情产生影响吗?