go语言Golang 入门资料+笔记Golang

go+vue项目跨域问题

2019-01-01  本文已影响0人  ljh123

使用go+vue达到前后端完全分离,前端vue需要占用一个端口,后端go也需要占用一个端口,就会产生跨域问题。

前端vue设置cookie和csrf

Vue.prototype.$http = axios
axios.defaults.baseURL = 'http://127.0.0.1:10000/api'
axios.defaults.xsrfHeaderName = 'X-CSRFToken'
axios.defaults.xsrfCookieName = 'csrftoken'
axios.defaults.withCredentials = true
axios.defaults.timeout = '5000'
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'

后端go

orgin := r.Header.Get("Access-Control-Allow-Origin")
if orgin == "" {
        orgin = r.Header.Get("Origin")
}
w.Header().Set("Access-Control-Allow-Origin", orgin)
w.Header().Add("Access-Control-Allow-Headers",  "X-Requested-With,Content-Type,x-csrftoken")    //header的类型
w.Header().Set("Access-Control-Max-Age", "86400")
w.Header().Set("Access-Control-Allow-Methods", "*")
w.Header().Set("Access-Control-Allow-Credentials", "true");
w.Header().Set("content-type", "application/json;charset=UTF-8") //返回数据格式是json

前端和后端这样设置就能进行跨域传输数据了

上一篇下一篇

猜你喜欢

热点阅读