javascript - Cookie 未随 Web 应用 manifest.json 请求一起发送
问题描述
我正在尝试在需要身份验证的网站上启用 PWA(通过 Cookie 管理的登录令牌)。
我正在本地尝试这个(http://localhost:4502)并为网站登录(并发出登录 cookie)。
问题是当请求 Web 应用清单时,请求上没有发送任何 Cookie,因此请求没有经过身份验证。
<link rel="manifest" href="/content/site-x/manifest.json">
如您所见,清单与包含它的网页使用相同的主机/方案。
清单的请求是否传递了 cookie?我什至将我的登录 cookie 设置为尽可能宽松,但没有。cookie 在所有其他请求(JS、CSS 等)上发送——也许 localhost 有什么特别之处吗?或者它不是http?
解决方案
根据https://developers.google.com/web/fundamentals/web-app-manifest/
对清单的请求是在没有任何凭据的情况下发出的(即使它在同一个域中),因此如果清单需要凭据,则必须在清单标记中包含 crossorigin="use-credentials"。
因此,将<link rel="manifest" href="/manifest.json" crossorigin="use-credentials">
跨域添加为在清单请求中添加服务器 cookie
推荐阅读
- php - 我想更新我的数据库
- android - 如何从谷歌驱动器隐藏的应用程序文件夹中检索数据?
- python - Python:request.get 多个选择器语法
- python - Scikit 学习;无法正确创建多项式回归图
- c# - 从数据表中拆分层次结构
- asp.net - 使用实体框架比较日期的月份部分
- python - 在使用 python 迭代列表时修改列表
- javascript - 单击选项卡时如何防止页面提交?
- tfs - Visual Studio Team Services 错误:“指定 cmdlet 的目标不能是基于 Windows 客户端的操作系统。”
- c# - 来自 vb.net 中字符串的 CRC-16/ARC