Я столкнулся со странной проблемой: Internet Explorer не отправляет cookie, когда получает в ответ запрос перенаправления. То же самое работает с Chrome.
Версия IE: 11.657.18362.0 (версии обновления: 11.0.175)
(Сценарий:
Одна страница отправляет запрос POST для получения платежа. Платежный шлюз отправляет перенаправление в ответ на мой зарегистрированный URL-адрес моего сайта. но когда он перенаправляется на мой сайт, он не отправляет Cookie в запросе GET на URL-адрес моего сайта. так что это завершение сеанса. )
Ниже представлен исходный текст, полученный от скрипачей:
ПОЧТА https://mdepayments.epdq.co.uk/Tokenization/HostedPage/ProcessCreditCardForm HTTP / 1.1
Принять: текст / html, приложение / xhtml + xml, изображение / jxr, /
Референт: https://mdepayments.epdq.co.uk/Tokenization/HostedPage
Accept-Language: en-IN, en; q = 0,5
Пользовательский агент: Mozilla / 5.0 (Windows NT 10.0; WOW64; Trident / 7.0; rv: 11.0), например, Gecko
Тип содержимого: application / x-www-form-urlencoded
Принятие кодировки: gzip, deflate
Хост: mdepayments.epdq.co.uk
Длина содержимого: 889
Подключение: Keep-Alive
Cache-Control: без кеша
CreditCardInputModel.HashParameter = ***** & CreditCardInputModel.AliasId = ***** & CreditCardInputModel.PspId = ***** & CreditCardInputModel.ExcludedPaymentMethods = & CreditCardInputModel.ExceptionUrl *** ** & CreditCardInputModel.CreditDebit = & CreditCardInputModel.Brand = & CreditCardInputModel.WorkflowId = ***** & CreditCardInputModel.OrderId = ***** & CreditCardInputModel.CardNumber = ***** & CreditCardInputModel.CardNumber* CreditCardInputModel.CardHolder*** 02 & CreditCardInputModel.CardExpirationYear = 2023 & CreditCardInputModel.Cvc = ***
В ответ на вышеуказанный запрос он отправляет текст ниже.
HTTP / 1.1 302 Найдено
Cache-Control: без кеширования, без хранения, необходимость повторной проверки
Прагма: без кеширования
Тип содержимого: текст / html; charset = utf-8
Срок действия: -1
Расположение: http: //localhost/Web_DEV/Popups/page.aspx? URL = ACCEPTURL и псевдоним.AliasId =***** & Card.Brand = VISA & Card.CardNumber = ***** & Card.CardHolderName = ***** & Card.Cvc = XXX & Card.ExpiryDate = 0223 & Alias.NCError = 0 & Alias.NCErrorCardNo = 0 & Alias.NCErrorCN = 0 & Alias.NCErrorCNCEr = 0 & Alias.NCErrorED = 0 & Alias.OrderId = ***** & Alias.Status = 2 & SHASign = ****
Дата: Вт, 05 марта 2020 г., 11:15:09 GMT
Длина содержимого: 712
Строгая безопасность транспорта: max-age = 31536000; includeSubDomains
<html><head> <title> Объект перемещен </title> </head> <body> <h2> Объект перемещен в <a href = "http: //localhost/Web_DEV/Popups/page.aspx? URL = ACCEPTURL и псевдоним.AliasId =***** & Card.Brand = VISA & Card.CardNumber = ***** & Card.CardHolderName = ***** & Card.Cvc = XXX & Card.ExpiryDate = 0223 & Alias.NCError = 0 & Alias.NCErrorCardNo = 0 & Alias.NCErrorCN = 0 & Alias.NCEr = 0 & Alias.NCErrorED = 0 & Alias.OrderId = ***** & Alias.Status = 2 & SHASign = **** "> здесь </a>. </h2> </body> </html>
После вышеуказанного ответа он перенаправляется на указанный URL-адрес. в запросе GET скрипач выглядит следующим образом:
ПОЛУЧИТЬ http: //localhost/Web_DEV/Popups/page.aspx? URL = ACCEPTURL и псевдоним.AliasId =***** & Card.Brand = VISA & Card.CardNumber = ***** & Card.CardHolderName = ***** & Card.Cvc = XXX & Card.ExpiryDate = 0223 & Alias.NCError = 0 & Alias.NCErrorCardNo = 0 & Alias.NCErrorCN = 0 & Alias.NCErrorCNCEr = 0 & Alias.NCErrorED = 0 & Alias.OrderId = ***** & Alias.Status = 2 & SHASign = ****
Принять: текст / html, приложение / xhtml + xml, изображение / jxr, /
Accept-Language: en-IN, en; q = 0,5
Пользовательский агент: Mozilla / 5.0 (Windows NT 10.0; WOW64; Trident / 7.0; rv: 11.0), например Gecko
Принятие кодировки: gzip, deflate
Cache-Control: без кеша
Хост: localhost
Подключение: Keep-Alive
Прагма: без кеширования
Так. он не отправляет cookie с указанным выше запросом (например, Cookie: ASP.NET_SessionId = ml1ijuttreetitllhifpboqo) То же самое отправляется в Chrome.
Я ищу в Google, но не нашел ничего похожего.
Что может быть в этом плохого? Я думаю, что браузер должен автоматически выбирать Cookie. но здесь это не так.