go+vue项目跨域问题

作者: ljh123 | 来源:发表于2019-01-01 12:18 被阅读0次

使用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

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

相关文章

网友评论

    本文标题:go+vue项目跨域问题

    本文链接:https://www.haomeiwen.com/subject/xtdnlqtx.html