有没有一种干净、简单的方法可以通过 json 响应 jquery/ajax 调用抛出 php 异常。
最佳答案
你可以在 PHP 中做这样的事情(假设这是通过 AJAX 调用的):
<?php
try {
if (some_bad_condition) {
throw new Exception('Test error', 123);
}
echo json_encode(array(
'result' => 'vanilla!',
));
} catch (Exception $e) {
echo json_encode(array(
'error' => array(
'msg' => $e->getMessage(),
'code' => $e->getCode(),
),
));
}
在 JavaScript 中:
$.ajax({
// ...
success: function(data) {
if (data.error) {
// handle the error
throw data.error.msg;
}
alert(data.result);
}
});
您还可以通过返回 400(例如) header 来触发 $.ajax() 的 error:
处理程序:
header('HTTP/1.0 400 Bad error');
如果您使用的是 FastCGI,请使用 Status:
。请注意,error:
处理程序不会收到错误详细信息;要实现这一点,您必须重写 $.ajax()
的工作方式:)
关于php - 通过 jquery/ajax 和 json 抛出 php 异常的干净方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12693423/