2016-01-06 2 views
1

Framework: Laravel 5,1Интернет исследователь не видит Laravel 5.1 печенье

Проблемных браузеров: Все версии IE (включая Edge.)

Проблемы: При отправке формы печенья устанавливается, когда пользователь отправьте обратно после отправки формы.

return Response::make($view)->withCookie(cookie('parameters', json_encode($request->except(['_token'])))) 

Это работает во всех браузерах, кроме конечно Интернет-исследователя (почему этот браузер все еще существует ?!)

В Internet Explorer я получаю пустой массив, когда я сбросить куки. Я много пробовал. Я не использовал iframes,, но я попытался использовать заголовки P3P без успеха, я установил IE на самый низкий уровень безопасности, также без успеха. Я не использую suddomains или подчеркивания в cookieame. Я пробовал его на нескольких доменах без успеха, я попробовал его на apache, nginx и в моем локальном env. (усадьба) тоже не работает.

Похоже, что файл cookie не установлен (в то время как во всех других браузерах он устанавливается). К сожалению, у IE нет опции или возможного дополнения, чтобы легко проверять сохраненные файлы cookie (как и все другие браузеры). Но я почти уверен, что cookie не хранится. Это странно, потому что cookie сеанса laravel хранится.

Я думаю, что я уже потратил полдня на это, но не нашел никаких решений. Если бы я заплатил за все часы, которые я потратил на странные ошибки с IE, я был бы очень богатым человеком. Сейчас перестанет бить IE, но люди, какой ужасный браузер.

редактировать: Другие вещи, которые я пробовал: Timezone проверки, дата проверки, сервер времени и т.д. Все не работали

ответ

2

Может быть, вы должны попытаться переименовать куки сессии на буквенно-цифровой строки. Это laravel_session, что вызывает проблемы в IE. Я помню, в прошлом месяце, когда я развернул свое приложение с cookie сеанса (domain.com), и у меня возникла аналогичная ошибка несоответствия токенов в каждом браузере из-за . в имени сеанса.

Я пытался Google и придумал это:

безопасность патч MS01-055 предотвращает сервера с неправильным именем синтаксисом от установки имен печенья. Домены, использующие файлы cookie, должны использовать только буквенно-цифровые символы («-» или «.») В имени домена и сервере . Internet Explorer блокирует файлы cookie с сервера, если имя сервера содержит другие символы, такие как символ подчеркивания («_»).

Поскольку состояние сеанса ASP и переменные сеанса полагаются на файлы cookie на функцию , ASP не может поддерживать состояние сеанса между запросами, если на клиенте нельзя установить .

Эта проблема также может быть вызвана неправильным синтаксисом имени в заголовке хоста .

Источник: https://support.microsoft.com/en-us/kb/316112

Q5: IE не будет устанавливать куки, когда имя хоста/домена содержит подчеркивание?

A: Правильно. Технически подчеркивание (например, это _) не является символом DNS , и в то время как Windows позволит вам использовать символ подчеркивания, когда называет ваш компьютер, он предупреждает вас, что это может вызвать проблемы. Одна из таких проблем заключается в том, что WinINET блокирует попытки установить файлы cookie на таких доменах. См http://support.microsoft.com/kb/316112/en-us

http://blogs.msdn.com/b/ieinternals/archive/2009/08/20/wininet-ie-cookie-internals-faq.aspx

+0

Спасибо вам ответить и ссылки. К сожалению, я уже использую буквенную цифровую строку как имя файла cookie. Я пробовал разные имена. Названия файлов cookie, такие как: «test» (как файл cookie сеанса), по-прежнему не работают в IE. – mauricehofman

Смежные вопросы