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 发送到服务器吗?的主要内容,如果未能解决你的问题,请参考以下文章

学习 React 需要具备的 JavaScript 知识

javascript 具有React Recharts的仪表图表(http://recharts.org)

React Typescript (.NET 6.0),使用 JavaScript 获取问题 (HTTP Err 431)

在Javascript / React中将对象转换为数组

一个网站可以同时使用简单的 JavaScript 和 React

如何使用 javascript 将 API 数据转换为 react-native 中的部分列表数据