Ajax возвращает статус 200, но выполнен обратный вызов ошибки: как перехватить сообщение с сервера для кодирования в json? - PullRequest
0 голосов
/ 11 октября 2019

Мой 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. Как отловить его при успешном обратном вызове?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...