首页 > 解决方案 > 尽管从 Spring-Boot 发送了多个 cookie,但 React Native 只得到一个 cookie

问题描述

我在获取 cookie 时遇到问题

春天

Spring Boot 正在发送多个 cookie,通过使用下面


    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RestController;
    @RestController
    public class SampleController {
        @PostMapping("/test")
        public Object test(HttpSession session, HttpServletResponse response) {
            String cookie1 = "first";
            String cookie2 = "second";
            Cookie firstCookie = new Cookie("uid", cookie1);
            firstCookie.setPath("/");
            firstCookie.setMaxAge(60 * 60 * 24 * 30);
            Cookie secondCookie = new Cookie("token", cookie2);
            secondCookie.setPath("/");
            secondCookie.setMaxAge(60 * 60 * 24 * 30);
            response.addCookie(firstCookie);
            response.addCookie(secondCookie);
        }
    }

反应原生

使用两个 cookie 发送响应,并在下面反应本机代码示例以捕获 cookie

    function test() {
        fetch(url, {
            method: 'POST',
            headers: {
                'Accept': 'application/json',
                credentials: 'include',
                'Content-Type': 'application/json',
            }
        }).then((response) => {
            for (const [name, value] of response.headers) {
                if (name === "set-cookie") {
                    console.log(value)
                }
            }
        });
    }

我用 response.header 检查了 cookie,但我最后添加了一个(第二个 - cookie2)

反应调试结果

我也试过python,postman,我可以看到三个cookie包括jsession Postman Cookie View

我怎样才能得到两个饼干?

标签: spring-bootreact-nativecookies

解决方案


尝试使用axios获取请求

import axios from 'axios';

// ...

let res = await axios.get(url)
console.log( res.headers["set-cookie"]) 

// or 

axios.get(url)
  .then(function (response) {
    console.log(response.headers["set-cookie"]);
  });

推荐阅读