亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法訪問前端應用程序中的自定義響應標頭

無法訪問前端應用程序中的自定義響應標頭

Go
海綿寶寶撒 2023-07-26 19:50:29
我無法訪問后端服務器提供的自定義響應標頭。服務器是用 Go 編寫的。我正在嘗試使用 axios 作為我的 HTTP 客戶端來訪問它。我可以在 chrome 開發工具控制臺中看到標頭,但無法通過 axios 訪問標頭。Chrome 開發工具響應標頭。我希望獲得底部的 x-***-token我可以通過 axios 訪問的標頭(啟用 cors)但是,當我在禁用 cors 的情況下運行 chrome 時,我可以通過 axios 訪問標頭:open -n -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --user-data-dir="/tmp/chrome_dev_test" --disable-web-security我可以通過 axios 訪問的標頭(cors 已禁用)這告訴我這不是 axios 的問題,而是我的標頭配置的問題。以下是我們如何配置標頭,我正在嘗試訪問x-custom-token標頭:func allowCORS(h http.Handler) http.Handler {return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {    if origin := r.Header.Get("Origin"); origin != "" && contains(cors, origin) {        w.Header().Set("Access-Control-Allow-Origin", origin)    }    if contains(cors, "*") {        w.Header().Set("Access-Control-Allow-Origin", "*")    }    if r.Method == "OPTIONS" || r.Method == "GET" && r.Header.Get("Access-Control-Request-Method") != "" &&        w.Header().Get("Access-Control-Allow-Origin") != "" {        headers := []string{"Content-Type", "Accept-Encoding", "X-CSRF-Token", "Authorization", "accept", "origin", "Cache-Control", "X-Requested-With", "x-custom-token"}        w.Header().Set("Access-Control-Allow-Headers", strings.Join(headers, ","))        methods := []string{"GET", "HEAD", "POST", "PUT", "DELETE"}        w.Header().Set("Access-Control-Allow-Methods", strings.Join(methods, ","))        expose := []string{"x-custom-token"}        w.Header().Set("Access-Control-Expose-Headers", strings.Join(expose, ","))        return    }    h.ServeHTTP(w, r)})}誰能告訴我我設置的標題不正確嗎?
查看完整描述

1 回答

?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

您的問題是您僅針對 OPTIONS 請求公開。

在您的 if 語句中,您的標準之一是r.Header.Get("Access-Control-Request-Method") != "".

此標頭通常僅在飛行前請求中使用,因此您的公開標頭不會寫入 GET 或其他方法。

此外,您的語句在寫入標題后返回。這對于飛行前是正確的,但會導致其他方法無法發送任何內容。

解決方案 - 調整邏輯以將公開標頭與飛行前標頭分開處理。



查看完整回答
反對 回復 2023-07-26
  • 1 回答
  • 0 關注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號