瀏覽器中的 Axios 和 Fetch 在發送請求時不會攜帶 cookies
P粉662361740
P粉662361740 2024-04-04 15:59:30
0
1
357

我使用 jwt auth 開發了一個 spring boot api,我得到了端點 'http://localhost:8080/api/signin' 如果登入成功,它會回傳一個 JSESSIONID,它是一個 jwtToken。到那裡為止,一切都很好,但我可以從瀏覽器中的 API 獲取其他方法,因為 cookie 沒有在請求正文中傳遞。

jwt產生的cookie如下圖所示:JSESSIONID=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImljCI6MTY4NTE1Mzk5NSwiZXXIjoxNjg1MjhdCI6MTY4NTE1Mzk5NSwiZXXIjoxNjg1MjhdCI6MTY4NTE1Mzk5NSwiZXXIjoxNjg1MjhdCI6MTY4NTE1Mzk5NSwiZXXIjoxNjg1MjhdCI6MTY4NTE1Mzk5NSwiZXIjoxNjg1Mjhd jRCvlJs_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

#
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!