В настоящее время я пишу интерфейс angularjs для своего бэкэнда, и я сталкиваюсь с несколько распространенной проблемой:
Сервер отправляет cookie обратно в ответ, но полностью игнорируется angular.js(не может даже распечатать значение "Set-Cookie" ).
Я пробовал читать
Set-Cookie в заголовке HTTP игнорируется с помощью AngularJS
Angularjs $http, похоже, не понимает "Set-Cookie" в ответе
но, к сожалению, я пробовал все решения там и просто не работает.
Запрос отправлен
Полученный ответ
Я использую angular.js(v1.2.10), и это то, что я использовал для запроса
$http.post('/services/api/emailLogin',
sanitizeCredentials(credentials),
{
withCredentials: true
}).success(function(data, status, header) {
console.log(header('Server'));
console.log(header('Set-Cookie'));
console.log(header('Access-Control-Allow-Headers'));
console.log(header('Access-Control-Allow-Methods'));
console.log(header);
}).then(
function(response) {
console.log(response);
return response.data;
});
withCredentials=true
устанавливается на стороне клиента перед выполнением запроса.
Access-Control-Allow-Credentials=true
устанавливается на стороне сервера перед возвратом ответа.
Вы можете четко видеть, что Set-Cookie
находится в заголовках ответов от инструментов разработчика Chrome, но распечатка просто
Только заголовок Set-Cookie
в заголовке ответа не распечатывается. Мне интересно, почему это происходит? Есть ли способ убедиться, что withCredentials=true
действительно установлен (я не видел его в заголовке запроса)?
Любая помощь приветствуется!