Доступ к localStorage корневого домена из поддомена

РЕДАКТИРОВАТЬ:

Ради простоты:

У меня есть простой скрипт UserJS (FF/Chrome: Greasemonkey, Opera: встроенный), который исправляет некоторые проблемы на веб-сайте, который я использую довольно часто. Проблема в том, что мне нужно хранить некоторые данные между разными запросами. Моя первая попытка была LocalStorage, но она не удалась, когда дело дошло до работы с поддоменами: www.domain.com и subdomain.domain.com (к сожалению, корневой домен на самом деле является поддоменом - глупый www). Мне нужно иметь доступ к какому-то источнику данных, который был бы доступен везде.

Теперь я застрял - есть идеи?


person Crozin    schedule 05.08.2010    source источник
comment
не могли бы вы поместить общие данные в LocalStorage под «domain.com»?   -  person sje397    schedule 08.09.2010
comment
Как я уже сказал, это сценарий UserJS, поэтому я не могу делать такие вещи.   -  person Crozin    schedule 08.09.2010
comment


Ответы (2)


...Почему бы не использовать GM_setValue и GM_getValue?

EDIT: я немного покопался. Посмотри что я нашел!

http://www.opera.com/docs/userjs/specs/#scriptstorage

Утверждается, что он работает так же, как localStorage, но его область действия зависит от скрипта, а не от веб-сайта. Должно работать идеально для вашего варианта использования.

person Pauan    schedule 30.09.2010
comment
К сожалению, Opera не предоставляет ничего подобного, насколько мне известно. - person Crozin; 30.09.2010
comment
Тогда вам почти наверняка не повезло. Firefox и Chrome поддерживают способы сохранения данных в пользовательских сценариях. Вы пробовали globalStorage? Это работает в Опере? - person Pauan; 30.09.2010
comment
У меня только что появилась идея: использовать куки. Недостатком является то, что сервер также увидит данные cookie, а работать с cookie довольно сложно. - person Pauan; 30.09.2010
comment
Не используйте ни globalStorage, ни файлы cookie. Я отредактировал свой ответ, чтобы показать решение для Opera. - person Pauan; 30.09.2010
comment
Я проверю это завтра, но, похоже, это именно то, что я ищу! - person Crozin; 30.09.2010

Вы не можете.

Из соображений безопасности браузер предоставляет доступ только к данным, хранящимся в localStorage в том же домене. Это связано с тем, что в некоторых системах разные поддомены принадлежат разным людям/веб-сайтам.

См., например: http://msdn.microsoft.com/en-us/library/cc197062(VS.85).aspx

Каждый домен и субдомен имеют свою отдельную локальную область хранения. Домены могут получить доступ к областям хранения поддоменов, а поддомены могут получить доступ к областям хранения родительских доменов. Например, localStorage['example.com'] доступен для example.com и любого из его поддоменов. Субдомен localStorage['www.example.com'] доступен для example.com, но не для других субдоменов, таких как mail.example.com.

person JochenJung    schedule 05.08.2010
comment
Э... разве эта цитата не сводится к "вы должны быть в состоянии"? - person sje397; 05.08.2010
comment
and subdomains can access the storage areas of parent domains это то, что я ищу. Но localStorage['...'] - это не правильно. - person Crozin; 05.08.2010
comment
Я попробовал localStorage['example.com'] и не смог заставить его работать. Пробовал в 3 разных комбинациях браузер/ОС: Firefox, IE8, Chrome. P.S. document.domain выглядит как полное доменное имя хоста. - person MarkHu; 03.10.2012