axios不能在向traefik反向代理发送HTTP GET请求时覆盖主机
上下文:我使用traefik作为我的反向代理发送HTTP请求到我的后端Golang服务器,我已经添加了一些CORS处理。 它从邮递员,当我蜷缩HTTP GET请求
问题:我在浏览器中遇到这个404错误:
Axios呼叫重写主机
axios.create({ baseURL: 'http://localhost', }) axios.defaults.headers['Host'] = 'dev.docker.local'
在控制台中得到这个错误
refused to set unsafe header "Host"
Axios使用X-Host-Override调用覆盖默认主机
axios.create({ baseURL: 'http://localhost', }) axios.defaults.headers['X-Host-Override'] = 'dev.docker.local'
Axios呼叫设置默认标题 – 似乎总是使用本地主机作为主机
axios.create({ baseURL: 'http://localhost', headers: {'Host': 'dev.docker.local'} })
在路由处理程序中设置CORS
func About(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json; charset=utf-8") w.Header().Set("Access-Control-Allow-Methods", "OPTIONS, GET") w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("Access-Control-Allow-Headers", "*") aboutStruct := about{ Name: "Hello world", } w.WriteHeader(http.StatusOK) j, _ := json.Marshal(aboutStrcut) w.Write(j) }
终于find了一个解决浏览器这个问题的方法,需要用dnsmasq把docker.local指向127.0.0.1,然后将baseURL设置为dev.docker.local,不需要重写Host