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

Interesting Posts