gpt4 book ai didi

php - 使用JQuery处理PHP运行时错误/通知/警告的最佳方法

转载 作者:行者123 更新时间:2023-12-03 08:57:20 24 4
gpt4 key购买 nike

我知道问题的标题不是很客观,但是很难解释我的情况。问题是,我想创建一种方法来处理$.post调用中的所有可能的错误,以便在给定情况下向用户提供正确的消息。

我有一些函数返回JSON对象。如果在我的应用程序中引发错误,则会生成状态代码500,从而使我很容易捕获和处理此错误。但是,如果发生运行时错误(例如,尝试对空对象执行方法),则PHP不会引发500错误,它只会显示一条错误消息,给出200状态并进行执行。我尝试模拟此错误,以查看如何最好地解决它,但是我没有主意。

我有以下代码:

$(function() {
$('#update_marker').submit(function(e) {
e.preventDefault();
$.post($("#update_marker").attr("action"), $("#update_marker").serialize(), function(data, textStatus, jqXHR) {
var json = $.parseJSON( data );
if( json.status=="success" ) {
new Messi( json.msg );
} else {
new Messi( json.msg, {title: 'Ops..', titleClass: 'anim error', buttons: [{id: 0, label: 'Fechar', val: 'X'}]});
}
}).fail( function(jqXHR, textStatus, errorThrown) { general_error(); } );
return false;
});
});

因此,在调用的方法中,我放入了 $nullobj->method();之类的代码来模拟意外失败。我得到的是下面的结果,状态码为200(确定)。
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">

<h4>A PHP Error was encountered</h4>

<p>Severity: Notice</p>
<p>Message: Undefined variable: nullobj</p>
<p>Filename: controllers/map.php</p>
<p>Line Number: 140</p>

</div><br />
<b>Fatal error</b>: Call to a member function method() on a non-object in <b>D:\xampp\htdocs\xumb\application\controllers\map.php</b> on line <b>140</b><br />

这将导致我的jQuery代码将其视为成功,并且无法解析JSON对象,因此不会向用户显示任何内容。在某些情况下,执行甚至不会在错误处停止,返回的JSON将在那里,但是在页面底部,将无法访问。我可以检查返回的对象是否为JSON,但还不止如此-我认为。

最佳答案

您可以创建自己的PHP错误处理程序。然后,您可以在出现某些错误或任何错误时返回状态500。
看到这个帖子:How can I get php to return 500 upon encountering a fatal exception?

关于php - 使用JQuery处理PHP运行时错误/通知/警告的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20519664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com