Мой ajax-запрос возвращает статус 200, но выполняется обратный вызов с ошибкой. Это происходит потому, что команда в php возвращает сообщение, которое не является json. Например, это происходит, когда php пытается отсоединить файл без прав доступа (см. Код ниже). Если сообщение было закодировано в json, успешный обратный вызов выполнялся в ajax. Я хотел бы обработать это сообщение в случае успешного обратного вызова. Как отловить это сообщение об отсутствии разрешений для кодирования в json, и предотвратить ошибку при выполнении обратного вызова?
Вот код.
siviglia.php
if ($_POST['action'] == 'cadice')
{
$this->barcellona.php($_POST['filename']);
}
public function barcellona($filename)
{
$u = unlink($filename);
return $u;
}
madrid.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. Как отловить его при успешном обратном вызове?