首頁 >後端開發 >Golang >為什麼我的瀏覽器不設定來自跨來源回應的 Cookie?

為什麼我的瀏覽器不設定來自跨來源回應的 Cookie?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-17 07:08:03242瀏覽

Why Isn't My Browser Setting Cookies from Cross-Origin Responses?

瀏覽器拒絕接受來自跨源響應的Set-Cookie 標頭

問題:

應用程式很難設定並保留從後端發送到前端的HTTP cookie。

具體:

  • 後端正確發送 cookie回應標頭。
  • 前端使用 Axios 發送請求,但本地未設定 cookie。
  • API 路由器具有允許 cookie 所需的標頭和 CORS 設定。

解決方案:

錯誤在於axios請求配置中withCredentials的放置位置。 withCredentials 是請求的屬性,而不是請求標頭。若要解決此問題,應將其從 headers 物件移至頂級配置物件。

修正的程式碼:

const axiosAuth = axios.create({
  validateStatus: (status: number) => {
    return status >= 200 && status < 300;
  },
  headers: {
    Accept: `application/json`,
    'Content-Type': 'application/json',
  },
  withCredentials: true,
});

透過使用 withCredentials: true在設定物件中,Axios 會自動處理跨域 cookie 的設定和擷取。

以上是為什麼我的瀏覽器不設定來自跨來源回應的 Cookie?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn