Я не мог придумать подходящего названия.Крест, куки и сеанс
У меня есть два веб-сайта под моим контролем. Домен A и домен B. Домен B устанавливает весь необходимый заголовок CORS для домена A.
Домен A делает запрос ajax в домен B. С помощью этого запроса создается сеанс в домене B, и cookie с jsessionid отправляется обратно ,
Домен A делает другой запрос ajax только что полученным cookie. Некоторое значение устанавливается на сеансе домена B. Это работает, как ожидалось.
Затем, когда я открываю новую вкладку и просматриваю домен B, браузер не отправляет cookie из запросов ajax. Почему это?
Является ли cookie от ajax запросов только временно действительными и действителен только для запросов ajax?
Дополнительное тестирование
Вышеописанное поведение относится к IE 11. Я просто сделал тест в последней Chrome и он не работает. Никакое cookie не отправляется с любыми последующими запросами ajax.
Пример запроса:
$.ajax({
url: url,
success: function() {
// do something
},
xhrFields: {
withCredentials: true
}
});
Как я уже сказал, второй запрос работает. Файл cookie устанавливается на втором запросе. Я устанавливаю withCredentials для всех запросов ajax. Я подозреваю, что файлы cookie сохраняются только для запросов ajax, а не для «обычных» запросов. Это мой вопрос. – T3rm1
Имеет ли сервер в домене B также заголовок ответа 'Access-Control-Allow-Credentials' для' true'? Не могли бы вы показать точные запросы и ответные нагрузки, которые отправляются по кабелю во время этого рабочего процесса? –
Да, в противном случае второй запрос будет отличаться. – T3rm1