Javascript React 可以将 HttpOnly cookie 发送到服务器吗?
Posted
技术标签:
【中文标题】Javascript React 可以将 HttpOnly cookie 发送到服务器吗?【英文标题】:Can Javascript React send HttpOnly cookie to Server? 【发布时间】:2020-11-23 10:48:44 【问题描述】:你可以使用 fetch 或其他方式向 React 中的服务器发送带有 HttpOnly cookie 的请求吗?
我知道 HttpOnly 意味着你不能用 JS 访问它。 我在想也许你不能读它,但你可以把它寄回去?我不知道。
我想要这个:
从客户端(ReactJS SPA)向服务器发出请求 服务器响应并设置 HttpOnly Cookie。 客户端得到响应,cookie由浏览器自动设置。对于同一台服务器的新请求,我想发回该 cookie。这可能使用 ReactJS 吗? 或者也许有一些方法可以绕过它,比如打开新窗口,使用简单的 html,而不是 ReactDOM?
感谢您的帮助。
【问题讨论】:
React
与在每个请求中将 cookie 发送回服务器无关。如果您使用fetch
,如果您想在请求中包含cookie,请确保正确设置credentials
选项 - developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
这能回答你的问题吗? Fetch API with Cookie
也许,我想知道 httpOnly 设置为 true 的 cookie 是否仍会发送
试一试,让我们知道。根据 MDN 文档,“javascript Document.cookie API 无法访问具有 HttpOnly 属性的 cookie;它只会发送到服务器。”
【参考方案1】:
好的,我查过了。
HttpOnly 设置为 true 的 Cookie,仍会使用 ReactJS、fetch 或任何其他使用 JS 发出的请求发送,您只是无法使用 JS 读取它,但使用 HttpPost、HttpGet 时,或其他。浏览器仍然将它附加到请求,即使它是 HttpOnly。
我想这里的教训是浏览器会为请求设置cookies,它并不关心请求是由HTML还是JavaScript发出的。
【讨论】:
以上是关于Javascript React 可以将 HttpOnly cookie 发送到服务器吗?的主要内容,如果未能解决你的问题,请参考以下文章
javascript 具有React Recharts的仪表图表(http://recharts.org)
React Typescript (.NET 6.0),使用 JavaScript 获取问题 (HTTP Err 431)