GO:gin处理前端跨域问题

目标:解决前端调用gin写的接口浏览器因为跨域无法调用的问题,表现为postman可以请求接口但是浏览器无法请求到接口;

设置后台

1)引用gin包和net包

package login

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

2)定义Cors(),将所有的请求进行放行;

func Cors() gin.HandlerFunc {
	return func(c *gin.Context) {
	   method := c.Request.Method
 
	   c.Header("Access-Control-Allow-Origin", "*")
	   c.Header("Access-Control-Allow-Headers", "Content-Type,AccessToken,X-CSRF-Token, Authorization, Token")
	   c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS")
	   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()
	}
 } 

3)在所有接口前增加router.Use(Cors()),放行所有的借口请求;

func Login_api_start() {
	router := gin.Default()
	//放行所有的请求
	router.Use(Cors())
	//用户登录接口
	router.POST("/userlogin", Userlogin)
	//新增支出接口
	router.GET("/sub",Subtraction)
	//新增收入接口
	router.GET("/add",Add)
	//获取到字典表
	router.GET("/getdict",Getdict)
	//获取到支出信息
	router.GET("/getsub",Getsubtraction)
	//获取到每个人支出和收入的占比
	router.GET("/statistics",Statistics)
	router.Run(":8081")
}
上一篇:图片服务器


下一篇:–allow-file-access-from-files解决chrome通过file协议加载文件报跨域问题