spring-boot - 尽管从 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
我怎样才能得到两个饼干?
解决方案
尝试使用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"]);
});