0 跨域
造成跨域是因为浏览器的同源策略,不允许js去请求不在同一个域下的资源,即使是localhost,这是防止XSS攻击的第一道防线(?)。(img标签除外,所以img也成了xss攻击的常用跳板方式)
1.jsonp
原理: script 标签不受同源策略的影响
需要后端接口返回一个回调函数,前端在回调函数做数据处理
|
|
还能使用 iframe 或者 posrMessage 来解决跨域, 但是安全性不高。
2.CORS
普通跨域请求:只服务端设置Access-Control-Allow-Origin即可,前端无须设置。
带cookie请求:前后端都需要设置字段,因为 cookie 需要设置域。
后端设置
|
|
3.nginx 代理
跨域原理: 同源策略是浏览器的安全策略,不是HTTP协议的一部分。服务器端调用HTTP接口只是使用HTTP协议,不会执行JS脚本,不需要同源策略,也就不存在跨越问题。
通过nginx配置一个代理服务器(域名与domain1相同,端口不同)做跳板机,反向代理访问domain2接口,并且可以顺便修改cookie中domain信息,方便当前域cookie写入,实现跨域登录。
|
|