语言用的go,前端是vue+axios 。 用的路由框架,遇到了CORS问题
github.com/julienschmidt/httprouter
在说明里面看到有设置 CORS问题的方式,设置了后本地实测不起作用。
header := w.Header() header.Set("Access-Control-Allow-Methods", header.Get("Allow")) header.Set("Access-Control-Allow-Origin", "*")
看到有人设置如下,就copy进去了(感谢:https://studygolang.com/articles/20014)
c.Header("Access-Control-Allow-Origin", "*") c.Header("Access-Control-Allow-Headers", "Content-Type,AccessToken,X-CSRF-Token, Authorization, Token") c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS") c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Content-Type") c.Header("Access-Control-Allow-Credentials", "true")
设置完,居然好用了。经过排除法。发现我这里只要如下设置就可以用。。
header.Set("Access-Control-Allow-Methods", header.Get("Allow")) header.Set("Access-Control-Allow-Origin", "*") header.Set("Access-Control-Allow-Headers", "Content-Type")
我前端请求头用的是
axios({url: httpPostStructure.getServiceUrl(), method: "POST", timeout: 10000, headers: {"Content-Type": "application/json"}, data: data,})
没错,标红的位置与上面golang的设置要对应。 如果不对应就会报错给你看。