如何正确捕获Ajax调用中的PHP错误

How to Properly Catch a PHP error on Ajax call

本文关键字:PHP 错误 调用 Ajax 何正确      更新时间:2023-09-26

我正在通过以下ajax调用从服务器检索javascript代码

ajax (dojo):

dojo.xhrGet({
    url : 'script.php',
    handleAs : "javascript",
    load : function(response){
        /*Do Something*/
    },
    error : function(errorMessage) {
        console.error(errorMessage);
    }
});

script.php可以正常工作,如果它返回的javascript代码不是有效代码,则会调用错误处理程序。但是,错误消息是不完整的,即。它只显示发生错误的最后一个函数,而不是整个函数调用链。这有时不是很有用,因为我想知道错误的来源。有没有办法输出整个跟踪?

张贴您所返回的响应。

我认为你最好尝试JSON响应。

我没有得到可靠的错误信息的原因是因为我使用的是eval,我期望看到的相同的行为,而不是包括那些脚本。这个问题描述了不同之处以及eval如何运行代码,而包含这些代码首先将代码插入DOM ,然后运行代码。前者效率更高,但后者更容易调试。

我在xhrPost上获得了相同的错误对象,尽管我的响应状态是200('句柄:'对于GET和POST是相同的)。

实际上handle: as 'json'也会抛出错误,但是handle as 'text'工作并触发了对load回调函数的调用