日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

什么是跨域?

瀏覽器有一個安全機制叫同源策略。
同源就是指協(xié)議、域名、端口都一樣,如果任意一項不一致就是不同源。簡單點說就是,你的網(wǎng)頁URL和你調(diào)用的接口URL不是一個地方的,瀏覽器覺得有安全風險,不想讓你使用這個接口的數(shù)據(jù)。

跨域的現(xiàn)象

當我們在本地啟動前、后端代碼進行調(diào)試時,如果使用postman等類似的工具進行調(diào)試時,接口是可以請求的,但是在瀏覽器調(diào)用相同的請求會失敗。
這是因為使用工具調(diào)用接口只是簡單的訪問一個資源,并不存在資源的相互訪問。而使用web則觸發(fā)了同源策略的保護機制。

「go商城」gin+vue跨域問題

 


「go商城」gin+vue跨域問題

 

gin處理跨域

我們在gin的攔截器中定義允許跨域請求,同時需要在注冊url的時候使用這個攔截器的方法

// 跨域
Router.Use(middleware.Cors()) // 如需跨域可以打開

// 處理跨域請求,支持options訪問
func Cors() gin.HandlerFunc {
    return func(c *gin.Context) {
        method := c.Request.Method
        origin := c.Request.Header.Get("Origin")
        c.Header("Access-Control-Allow-Origin", origin)
        c.Header("Access-Control-Allow-Headers", "Content-Type,AccessToken,X-CSRF-Token, Authorization, Token,X-Token,X-User-Id")
        c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS,DELETE,PUT")
        c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type")
        c.Header("Access-Control-Allow-Credentials", "true")

        // 放行所有OPTIONS方法
        if method == "OPTIONS" {
            c.AbortWithStatus(http.StatusNoContent)
        }
        // 處理請求
        c.Next()
    }
}

到這里就結(jié)束了嘛?
如果你的攔截器方法中定義了你前段請求攜帶的所有信息的話,那么請求就能成功。
但是我使用的newbee商城現(xiàn)成的前端,其前端代碼中攜帶了這樣一條請求頭的鍵值對

axIOS.defaults.headers['X-Requested-With'] = 'XMLHttpRequest'

「go商城」gin+vue跨域問題

 


如果不加上這個請求頭的話,通過web請求接口依然會失敗。
在你的項目中如果也遇到了類似的問題,可以檢查一下你前后端定義的請求頭是否一致。

所有代碼已上傳github,有興趣的可以訪問
https://github.com/newbee-ltd/newbee-mall-api-go/,如果有更好的建議也歡迎提交issure,pr

分享到:
標簽:跨域
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定