1.當我在golang中,在前后端分離的情況下使用cookies時發現,跨域沒有被允許。代碼如下:
func AccessJsMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
w := c.Writer
// 處理js-ajax跨域問題
w.Header().Set("Access-Control-Allow-Origin", "*") //允許訪問所有域
w.Header().Set("Access-Control-Allow-Methods", "OPTIONS, POST")
w.Header().Add("Access-Control-Allow-Headers", "Content-Type")
w.Header().Add("Access-Control-Allow-Headers", "Access-Token")
c.Next()
}
}
1.1.這里在程序啟動時增加了一個跨域中間件,使用如下
api := rounter.Group("/api")
api.Use(AccessJsMiddleware())
以上設置ajax請求使用cookie時會被拒絕
2.然后我就進行了修改,解決了該問題
2.1.ajax請求增加一個設置
xhrFields: {
withCredentials: true
},
2.2.然后修改了跨域中間件的設置
func AccessJsMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
w := c.Writer
r:=c.Request
// 處理js-ajax跨域問題
w.Header().Set("Access-Control-Allow-Credentials", "true")
w.Header().Set("Access-Control-Allow-Origin", r.Header.Get("Origin"))
w.Header().Set("Access-Control-Allow-Methods", "OPTIONS, POST")
w.Header().Add("Access-Control-Allow-Headers", "Content-Type")
w.Header().Add("Access-Control-Allow-Headers", "Access-Token")
c.Next()
}
}
以上就解決了cookie跨域的問題啦,覺得有用就點一個推薦和關注啦,畢竟我也是一個害羞⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄的小公舉。
