Я использую библиотеку expressjs. Он работает на локальном хосте: 8000 в качестве сервера, и я показываю с ним статические страницы. Мое приложение работает на локальном хосте: 4200. Я пытался использовать один и тот же файл cookie или localStorage на разных страницах портов, но это не сработало. Как я могу достичь этого?
3 ответа
Я думаю, что вы пытаетесь сделать здесь, чтобы файлы cookie/локальные хранилища были разделены между двумя местами.
- Вам нужно 2 места? Я почти уверен, что вы можете обслуживать свое приложение на том же экспресс-сервере.
- Если вы используете экспресс-версию для бэкэнда (не для внешнего интерфейса), вы можете передавать необходимую информацию в своих запросах с помощью POST, GET, PATCH и т. д. Получите дополнительную информацию об отправке информации между клиентом и сервером в Google.
- Если оба являются интерфейсом, возможно, постарайтесь, чтобы этого не было. Если необходимо, вы можете использовать то, что я упомянул выше, для отправки информации между серверами.
Надеюсь, это каким-то образом поможет.
Вы можете сделать это, вызвав маршруты на localhost: 8000 только в своем основном приложении, и, поскольку оно работает на двух разных портах, вы можете столкнуться с ошибкой из-за политики Cors, и для этого вы можете посмотреть эти ответы. Корс включить
Когда вы работаете с разными портами, если в файлах cookie для атрибута «SameSite» установлено значение «Только хост», а для домена установлено значение «localhost», они будут видны/доступны из обоих доменов независимо от номера порта.
Как говорит @codingmaster, если это разные домены, вам придется реализовать управление cors для разных доменов.
Но поскольку вы владеете обоими приложениями, во время производства одно может находиться в основном домене, а другое — в поддомене, тогда вам нужно будет установить атрибут domain файла cookie для вашего домена, например: example.com
и атрибут SameSite могут оставаться HostOnly
, а файлы cookie будут доступны
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.