Javascript Ajax返回状态200,但执行了错误回调:如何捕获来自服务器的消息以编码为json?
我的ajax请求返回状态200,但执行错误回调。这是因为php中的命令返回的消息不是json。例如,当php尝试在没有权限的情况下取消文件链接时,就会发生这种情况(请参阅下面的代码)。 如果消息编码为json,则在ajax中执行成功回调。我想在成功回调中管理此邮件。 如何捕获这个没有编码到json权限的消息,并防止执行错误回调 这是代码 siviglia.phpJavascript Ajax返回状态200,但执行了错误回调:如何捕获来自服务器的消息以编码为json?,javascript,php,json,ajax,Javascript,Php,Json,Ajax,我的ajax请求返回状态200,但执行错误回调。这是因为php中的命令返回的消息不是json。例如,当php尝试在没有权限的情况下取消文件链接时,就会发生这种情况(请参阅下面的代码)。 如果消息编码为json,则在ajax中执行成功回调。我想在成功回调中管理此邮件。 如何捕获这个没有编码到json权限的消息,并防止执行错误回调 这是代码 siviglia.php if ($_POST['action'] == 'cadice') { $this->barcellona.php($_
if ($_POST['action'] == 'cadice')
{
$this->barcellona.php($_POST['filename']);
}
public function barcellona($filename)
{
$u = unlink($filename);
return $u;
}
马德里js
$.ajax({
url: 'siviglia.php',
type: 'POST',
dataType: 'json',
data: {
action: 'cadice',
filename: 'fn',
},
success: function(response){
alert("success");
}
},
error: function (xhr) {
console.log(xhr.responseText);
}
});
如果unlink返回true,则执行成功回调。
如果从linux抛出“No permissions”(无权限)消息,它将在浏览器控制台中返回为
xhr.responseText
,状态为200。如何在成功回调中捕获它?在删除之前在文件上使用是可写的()
是的,谢谢我知道;这是一个可能导致该消息的示例,但实际上我希望捕获该消息并在成功回调中进行管理。问题不在于“如何防止此警告”,而在于“有一种方法可以在成功回调中管理它?”如果文件不可写,那么您会抛出文件不可写的消息OK thank you,因此通常我必须通过php端管理任何可能的警告或错误,并且在成功回调中没有其他方法来管理它。正确吗?在服务器中管理它们,然后在客户端上显示有意义的消息。。。不是来自服务器的错误。。。您不希望用户看到服务器错误