浏览器对跨域访问的接口一般会阻止,后端配置允许跨域的例外,一般接口对应的handler中增加header的配置,常用如下:
func Handle(rw http.ResponseWriter, req *http.Request) {
//支持跨域
rw.Header().Set("Access-Control-Allow-Origin", "*")
rw.Header().Set("Access-Control-Allow-Credentials", "true")
rw.Header().Set("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS")
...
}
如果对应多个handler使用那么可以将上述配置提取成单独的函数
func enableCors(w *http.ResponseWriter) {
(*w).Header().Set("Access-Control-Allow-Origin", "*")
(*w).Header().Set("Access-Control-Allow-Origin", "*")
(*w).Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE")
(*w).Header().Set("Access-Control-Allow-Headers", "Accept, Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization")
}
接口发布后可以在任意浏览器的console中进行测试,将open( method , url) 中的参数替换为自己的实际要使用跨域的方法和地址即可:
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost:8080/login');
xhr.send(null);
xhr.onload = function(e) {
var xhr = e.target;
console.log(xhr.responseText);
}
参考: Enabling CORS on a Go Web Server 本机测试跨域问题的浏览器控制台代码 用Go实现CORS跨域资源共享的服务器支持
本文链接:https://iokde.com/post/golang-enable-cors-and-browser-console-check.html,参与评论 »
--EOF--
发表于 2021-01-13 09:59:00。
本站使用「署名 4.0 国际」创作共享协议,转载请注明作者及原网址。tools更多说明 »
提醒:本文最后更新于 1238 天前,文中所描述的信息可能已发生改变,请谨慎使用。
Comments