浏览器中的 Axios 和 Fetch 在发送请求时不会携带 cookies
P粉662361740
P粉662361740 2024-04-04 15:59:30
0
1
503

我使用 jwt auth 开发了一个 spring boot api,我得到了端点 'http://localhost:8080/api/signin' 如果登录成功,它会返回一个 JSESSIONID,它是一个 jwtToken。到那里为止,一切都很好,但我可以从浏览器中的 API 获取其他方法,因为 cookie 没有在请求正文中传递。

jwt生成的cookie如下所示:JSESSIONID=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImlhdCI6MTY4NTE1Mzk5NSwiZXhwIjoxNjg1MjQwMzk1fQ.9jxHyzDJKVra8IryxbH8se0xSl4_Dka pNsKmjRCvlJs_R8M3x3RBMeo-1VPAJv6YSQwC6ukJutRwGEyfeYrGwQ;路径=/;仅 Http;过期=2023 年 5 月 28 日星期日 02:38:33 GMT;

例如: 如果我这样做

curl --location 'http://localhost:8080/user/admin/all' --header 'Cookie: JSESSIONID=mycookie'

一切顺利,并返回我想要的 json,但是当我在浏览器上运行它时,在我的前端的 js 脚本中

axios
  .get("http://localhost:8080/user/admin/all", {
    headers: {
      Cookie:
        "JSESSIONID=mycookie",
    },
  })
  .then((response) => {
    console.log(response.headers);
    console.log(response.data);
  })
  .catch((error) => {
    console.error("Erro:", error);
  });

我收到此错误:

GET http://localhost:8080/user/admin/all 401

未设置 cookie。我尝试了很多事情,几乎失去了理智。你们知道它会是什么吗?

P粉662361740
P粉662361740

全部回复(1)
P粉988025835

您需要设置withCredentials: true

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板