通过泛型JS函数调用AJAX后发生的调试PHP错误


Debugging PHP error that happens after AJAX call by generic JS function

我有一点困惑的情况:)

我有一个JavaScript函数,它被几个不同的页面调用。这个JavaScript页面然后调用一些服务器端PHP代码。大约98%的时间都没有问题。

但有时JavaScript没有传递它应该传递的id参数,这会产生错误。

我的问题是,我无法找到调用JS函数的页面,然后JS函数生成带有错误的PHP调用。

你知道我该怎么追查吗?

当PHP脚本完成工作时,将HTTP_REFERRER发送到错误日志。添加日期&时间和$_GET变量以获取更多信息。此信息应该已经在您的web服务器访问日志中,但如果您也需要$_POST变量,则需要在错误日志中创建自定义消息。

// Simple:
error_log("AJAX call from {$_SERVER['HTTP_REFERRER']}", 0);
// Fancy:
error_log(strftime("Y-m-d H:M:S") . " AJAX call from {$_SERVER['HTTP_REFERRER']}; POST: var1={$_POST['var1']} var2={$_POST['var2']}", 0);

您可以在PHP端使用$_SERVER['HTTP_REFERER']来尝试确定请求的来源。

查看Firebug中的Net选项卡。这将跟踪所有HTTP请求,包括AJAX调用。如果您正在传递参数,您也可以看到这一点。在Firebug中单击请求旁边的微小+按钮,可以在选项卡式窗格中查看详细信息,包括传递的参数,甚至是传递的JSON对象。