网站在线客服系统GOFLY代码开发日志-9: gin框架解决跨域问题 
                                                    
                        
                    
                    
  
                    
                    在默认情况下,gin框架开发的api接口是不允许跨域的。如果调用方和我们的api接口不在同一个域名下,就会出现跨域错误。
been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
解决这个问题比较简单,gin框架下可以这样操作
比如middleware包下
package middleware
import (
    "github.com/gin-gonic/gin"
    "net/http"
)
func CrossSite(c *gin.Context) {
    c.Writer.Header().Set("Access-Control-Allow-Origin", "*")
    //服务器支持的所有跨域请求的方法
    c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE,UPDATE")
    //允许跨域设置可以返回其他子段,可以自定义字段
    c.Header("Access-Control-Allow-Headers", "Authorization, Content-Length, X-CSRF-Token, Token,session")
    // 允许浏览器(客户端)可以解析的头部 (重要)
    c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers")
    //允许客户端传递校验信息比如 cookie (重要)
    c.Header("Access-Control-Allow-Credentials", "true")
    if c.Request.Method == "OPTIONS" {
        c.JSON(http.StatusOK, "Options Request!")
    }
    c.Next()
}
上面就是定义了一个中间件,直接使用这个中间件就可以了
    engine := gin.Default()
    engine.Use(middleware.CrossSite)后面还遇到了哪些问题和知识点将会继续进行总结。
演示网站:
gofly.sopans.com
本作品采用《CC 协议》,转载必须注明作者和本文链接
 
           程序员老狼 的个人博客
 程序员老狼 的个人博客
         
           
           关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: