1 什么是跨域?
协议,端口,域名三者之中有一个不同就会构成跨域
2 什么是同源?
同源指的就是协议,端口,域名三者一一对应,就算两个不同的域名指向同一个IP地址,也非同源,同源也是浏览器安全功能的一部分,可以防止一些XSS、CSFR等攻击。
3 如何解决跨域问题?
a 利用jsonp进行跨域
1创建一个script标签 2 给script标签一个路径就是 src 3 将script标签插入到页面之中 4 利用回调函数处理数据 加自己的逻辑
b cors模块 往往需要与后端进行协商实现
c nginx配置
d webpack配置代理 根目录下建一个vue.config.js的文件 里面做跨域的后端地址。完成记的重新启动项目。
module.exports={
//打包后的文件夹目录
outputDir:"/dist",
// 静态资源文件夹目录
assetsDir:"./static",
// 根文件
indexPath:"index.html",
// 基础路径 hash:"" history:"/"
publicPath:"",
// 配置代理
devServer:{
proxy:{
"/api":{
// 后端电脑的ip+端口号
target:"http://localhost:2000",
changeOrigin:true,//跨域
ws:true,//跨域
}
}
}
}
e document.domain + iframe跨域
f location.hash + iframe
g window.name + iframe跨域
h postMessage跨域