前端vue后端go如何进行跨域设置?一篇就通透理解
前端Vue项目设置代理服务器来处理跨域请求,后端Go服务器需要在响应头中添加允许的Origin。
前端Vue项目:
在
vue.config.js
中配置devServer的代理来处理跨域请求。
// vue.config.js
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://backend-domain.com', // 后端Go服务器的地址
changeOrigin: true, // 改变Origin
pathRewrite: {
'^/api': '' // 重写路径
}
}
}
}
};
后端Go服务器:
在每个响应中添加CORS头部来允许特定的Origin或所有Origin。
// main.go
func main() {
http.HandleFunc("/", handler)
log.Fatal(http.ListenAndServe(":8080", nil))
}
func handler(w http.ResponseWriter, r *http.Request) {
// 允许所有Origin
w.Header().Set("Access-Control-Allow-Origin", "*")
// 或者只允许特定的Origin
// w.Header().Set("Access-Control-Allow-Origin", "http://frontend-domain.com")
w.Header().Set("Access-Control-Allow-Methods", "GET, POST, OPTIONS")
w.Header().Set("Access-Control-Allow-Headers", "Content-Type")
// ... 其他处理逻辑
}
在Go中,也可以使用第三方库如github.com/rs/cors
来简化CORS的设置。
确保替换http://backend-domain.com
和:8080
为你的后端服务器的实际地址和端口。
评论已关闭