什么是跨域请求
协议+域名+端口号都相同才是同域
在 HTML 中,<a>, <form>, <img>, <script>, <iframe>, <link> 等标签以及 Ajax 都可以指向一个资源地址,而所谓的跨域请求就是指:当前发起请求的域与该请求指向的资源所在的域不一样。
跨域安全性问题
如果对跨域请求不做限制,会有安全隐患
CORS/跨资源共享
跨源资源共享 Cross-Origin Resource Sharing(CORS) 是一个新的 W3C 标准,它新增的一组HTTP首部字段,允许服务端其声明哪些源站有权限访问哪些资源。换言之,它允许浏览器向声明了 CORS 的跨域服务器,发出 XMLHttpReuest 请求,从而克服 Ajax 只能同源使用的限制。
http协议header解析
-
Access-Control-Allow-Origin
-
Access-Control-Expose-Headers
-
Access-Control-Max-Age
-
Access-Control-Allow-Credentials
-
Access-Control-Allow-Methods
go跨域请求
在使用go语言写测试服务的时候遇到了前端跨域请求问题,只需在go中加入
w.Header().Set("Access-Control-Allow-Origin", "*") //允许访问所有域
w.Header().Add("Access-Control-Allow-Headers", "Content-Type") //header的类型
w.Header().Set("content-type", "application/json") //返回数据格式是json
参考
https://www.jianshu.com/p/f880878c1398
http跨域:https://zhangbinalan.gitbooks.io/protocol/content/httpkua_yu_qing_qiu.html
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS
网友评论