golang-在gin中cookie跨域設置(配合ajax)


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跨域的問題啦,覺得有用就點一個推薦和關注啦,畢竟我也是一個害羞⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄的小公舉。

 



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM