Это мой апи с помощью Phalcon:401 ответ не возвращается JSon
$response = new Response();
$response->setStatusCode(401, 'Unauthorized');
$response->setContentType('application/json', 'UTF-8');
$response->setJsonContent(['status' => 401]);
$response->setHeader('Access-Control-Allow-Origin', '*');
$response->setHeader('Access-Control-Allow-Headers', 'X-Requested-With, Authorization');
$response->setHeader('Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, OPTIONS');
return $response;
И это мой запрос с использованием Мифрилового рамки:
options = {method: 'GET', url: "http://.../flights/recent"};
var oldConfig = options.config || function() {};
options.config = function(xhr) {
xhr.setRequestHeader("Authorization", "Bearer " + AuthComponent.token());
oldConfig(xhr);
};
var deferred = m.deferred();
m.request(options).then(deferred.resolve, function(error) {
if(error.status === 401) {
AuthComponent.originalRoute = m.route();
m.route('/login');
}
});
return deferred.promise;
Это апи код, очевидно, просто тест, не окончательный код. Предполагается имитировать истекший токен, где он отвечает на запрос с заголовком 401 и json status=401
, поэтому его можно прочитать в JS error.status
.
m.request
знает, что это ошибка, но error
переменная возвращает null
.
В инструментах разработчика Google Chrome запрос показывает 401 Unauthorized, но на вкладке Response отображается «Этот запрос не имеет доступных данных ответа».
Этот код был внутри функции, он посылает ответ вне ее. Решение находится здесь: http://stackoverflow.com/questions/31749662/cant-get-401-response-body –