Возможно ли вообще вернуть какую-то ошибку (то есть, используя header ()) из php-файла, который получен вызовом ajax и получен как ошибка (через метод catch?)
рассмотрим такой php (пример работает некорректно):
<?php
session_start();
$_SESSION['user_id'] = 1;
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Methods: GET,HEAD,OPTIONS,POST,PUT");
header("Access-Control-Allow-Headers: Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");
if ( $_SESSION['user_id'] == 0 ) {
header('Content-Type: application/json');
print json_encode(["test" => 123]);
}
else
{
header('HTTP/1.1 1337 Internal Server Kalreg');
header('Content-Type: application/json; charset=UTF-8');
die(json_encode(array('message' => 'ERROR', 'code' => 1337)));
}
?>
и js:
axios.get('loginStatus.php', { crossDomain: true })
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
}
}
Теперь, когда $ _SESSION ['user_id'] установлен в 1, генерируется ошибка сервера, и из-за этого перехватав JS должны реагировать должным образом.На самом деле это не так - в chrome-dev-tools я получаю ошибку:
xhr.js? Ec6c: 178 ВАРИАНТОВ http://192.168.0.15/game/src/server/loginStatus.php 500 (Внутренняя ошибка сервера) Ошибка загрузки http://192.168.0.15/game/src/server/loginStatus.php: Ответ на предпечатную проверку имеет недопустимый код состояния HTTP 500.
Возможно ли это?Или я должен вернуть только файл JSON с ошибкой или нет и управлять им с помощью .then not .catch?
Kalreg.