Как я могу закодировать вызов jquery ajax () (например, xmlhttprequest) для сохранения идентификатора сеанса (например, отправить cookie 'jsessionID' уже в файлах cookie браузера)
Наш контекст:
Почему новые сеансы?
Причина: XmlHttpRequest не передает файлы cookie в приложение B. Контейнер сервлета устанавливает jsessionid в cookie. Сервер не получает jsessionid
Напротив, вызовы JSONP (которые динамически генерируют
Вопросы
Веб-сеансы, состояние и аутентификация
Я знаю, что REST должен быть без сохранения состояния, а повторное использование веб-сеансов кажется несколько хрупким (т. е. в отличие от использования OAuth и токенов аутентификации , как и netflix)
Это первая итерация, и мы были близки к тому, чтобы все «заработало». Это нормально работало с JSONP, но сообщения XmlHttpRequest не выполнялись.
заранее спасибо
Обновление:
Действительно наивный вопрос.
Оказалось, что размещение сообщений между сайтами через xmlhttprequest / ajax имеет внутренние проблемы с безопасностью и обходные пути. Например, Firefox не будет передавать файлы cookie с помощью XmlHttpRequest, если вы не добавите специальные заголовки. Затем Firefox выполнит «предполетную проверку» (т. Е. Вызов http OPTIONS) на сервер, чтобы увидеть «это нормально?». Ваш сервер должен ответить на вызов «OPTIONS», сказав «да, все в порядке», прежде чем Firefox выполнит ваше «сообщение с файлами cookie».
IE и Firefox решают эту проблему по-разному (то есть немного похоже на javascript примерно 1998 года). Я не понимаю, что делает IE, но, пережив 1998 год, мы не хотим идти по этому пути, если это вообще возможно.
Мы закодировали обходной путь.
Никто из нашей команды не знал об этом, когда мы начинали кодировать. (т.е.«jsonp отлично работал в прототипе; все остальное тоже должно»)
Ссылки: Как Mozilla решает эту проблему (HTTP-заголовки и предпечатная проверка) https://developer.mozilla.org/En/HTTP_access_control
Совместное использование ресурсов между источниками: http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing