使用 js , 提取set-cookie 里面的key,value , 变成一个map
时间: 2024-01-19 20:04:36 浏览: 36
可以使用 JavaScript 中的正则表达式和字符串方法来提取 set-cookie 中的 key-value 并将其转换为 Map。以下是一个示例代码:
```javascript
const setCookie = "key1=value1; key2=value2; key3=value3";
const cookieMap = new Map(setCookie.split(';').map(cookie => {
const [key, value] = cookie.trim().split('=');
return [key, value];
}));
console.log(cookieMap);
```
这段代码将 set-cookie 字符串分割成多个键值对,然后使用 map() 方法对每个键值对进行处理,将其分割成键和值,并返回一个包含键值对的数组。最后,使用 new Map() 方法将数组转换为 Map 对象。
输出的结果如下:
```
Map(3) {
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3'
}
```
这个 Map 对象包含了 set-cookie 中所有的键值对。
相关问题
java后端怎么添加Set-Cookie: key=value; SameSite=None; Secure
如果你使用的是Java Servlet API,可以通过以下步骤添加 `Set-Cookie` 头:
1. 导入 `javax.servlet.http.Cookie` 类和 `javax.servlet.http.HttpServletResponse` 类。
2. 创建一个 `Cookie` 对象,并设置名称和值。
```java
Cookie cookie = new Cookie("key", "value");
```
3. 设置 `Cookie` 的作用域和路径(可选)。
```java
cookie.setDomain(".example.com");
cookie.setPath("/");
```
4. 设置 `Cookie` 的 `SameSite` 属性为 `None`,并启用 `Secure`。
```java
cookie.setSecure(true);
cookie.setSameSite(Cookie.SameSite.NONE);
```
5. 将 `Cookie` 对象添加到 `HttpServletResponse` 对象的 `Set-Cookie` 头中。
```java
response.addCookie(cookie);
```
完整的代码示例:
```java
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
// ...
Cookie cookie = new Cookie("key", "value");
cookie.setDomain(".example.com");
cookie.setPath("/");
cookie.setSecure(true);
cookie.setSameSite(Cookie.SameSite.NONE);
response.addCookie(cookie);
```
注意:`SameSite=None` 和 `Secure` 属性必须同时设置,否则浏览器会忽略 `SameSite` 属性。另外,`SameSite=None` 属性要求必须使用 HTTPS 协议,否则 `SameSite` 属性会被忽略。
js-cookie获取response.headers的set-cookie
在JavaScript中,可以使用js-cookie库来获取response.headers的set-cookie。js-cookie库提供了一个方便的方法来操作cookie,通过这个库,我们可以轻松地获取和设置cookie。使用这个库的方法如下:
1. 首先,你需要在你的html文件中引入js-cookie库,可以通过以下方式引入:
```
<script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.1/dist/js.cookie.min.js"></script>
```
2. 接着,在获取response的headers时,可以通过response.headers.get('set-cookie')来获取set-cookie的值。
3. 最后,你可以将获取到的set-cookie值设置为cookie,使用js-cookie库的方法如下:
```
Cookies.set('cookieName', cookieValue, { expires: cookieExpires, path: cookiePath });
```
其中,cookieName是cookie的名称,cookieValue是cookie的值,expires是cookie的过期时间,path是cookie的路径。
相关推荐
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![.zip](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)