#javascript #browser #cookies
#javascript #браузер #файлы cookie
Вопрос:
Допустим, у меня есть два приложения,www.test.com и sub.test.com , теперь в sub.test.com , Я создаю окно для загрузки www.test.com с помощью таких кодов, как :
window.open('www.test.com');
Итак, окно просто всплывает и загружается www.test.com успешно.
Затем я устанавливаю файл cookie в sub.test.com , скажите «uname=wong2;domain=.test.com «, я узнал, что при значении domain=.test.com
все сайты с доменом test.com (например www.test.com, aaa.test.com, test.com ) может прочитать файл cookie.
Но когда я пытаюсь загрузить файл cookie из окна, которое просто всплывает сwww.test.com , он не может его получить.
Затем я обнаружил, что если я не использую window.open, а открываю напрямую www.test.com в браузере это работает.
Итак, существуют ли какие-либо ограничения на window.open и cookie?
Комментарии:
1. Не то, чтобы я когда-либо слышал. Вы также указали путь к «/»? И используете ли вы те же номера портов и протокол (http / https)
2. В каких браузерах возникает эта проблема?
Ответ №1:
просто проверьте, как вы установили файл cookie:
var domain = 'test.com';
var expires = (function(days){
date = new Date();
date.setTime(date.getTime() (days * 24 * 60 * 60 * 1000));
return date.toUTCString();
})(5);
var name = 'myCookie';
var path = '/';
var value = 'foo';
document.cookie = name "=" encodeURIComponent(value) "; expires=" expires "; path='" path "'; domain=" domain ";";
Ответ №2:
Это называется междоменным, и вы не можете установить cookie в одном домене и попытаться получить к нему доступ в другом домене. Браузеры не позволят этого делать.Я думаю, вы можете выполнить это с помощью iframe или политики того же источника или попробовать использовать document.domain Я не уверен, что именно вы хотите сделать.
Комментарии:
1. Файлы cookie могут пересекать домены, если они установлены должным образом, чтобы разрешить это.