Contents

通用技术-跨域问题

同源策略

MDN 浏览器的同源策略

当一个请求url的协议,域名,端口三者之间任意一个与当前的url不同都即为跨域

跨域的安全限制,主要是针对浏览器端来说的,服务器端是不存在跨域安全限制的

解决跨域

cors:在后端响应中添加Access-Control-Allow-Origin响应头

go原生解决办法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
resp.Header().Set("Content-Type", "application/json")
resp.Header().Set("Access-Control-Allow-Origin", "*") //允许访问所有域
// 必须,设置服务器支持的所有跨域请求的方法
resp.Header().Set("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE, OPTIONS")
// 服务器支持的所有头信息字段,不限于浏览器在"预检"中请求的字段
resp.Header().Set("Access-Control-Allow-Headers", "content-type")
// 可选,设置XMLHttpRequest的响应对象能拿到的额外字段
resp.Header().Set("Access-Control-Expose-Headers", "Access-Control-Allow-Headers, Token")
// 可选,是否允许后续请求携带认证信息Cookir,该值只能是true,不需要则不设置
resp.Header().Set("Access-Control-Allow-Credentials", "true")
 |