上下文:我使用traefik作为我的反向代理将HTTP请求发送到我的后端Golang服务器,我已经添加了一些CORS处理。它适用于Postman以及当我提出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呼叫设置默认标头 - 似乎总是使用localhost作为主机
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)
}
答案 0 :(得分:0)
终于找到了解决浏览器这个问题的方法,需要使用dnsmasq将docker.local指向127.0.0.1然后将baseURL设置为dev.docker.local,不需要覆盖Host