跨域
跨域出现的原因是因为:同源策略
同源策略:(缺一不可)
- 域名
- 端口
- 协议
如果不满足以上三个条件的任何一个 那么则构成跨域 违反同源策略
解决跨域的常用方式:
-
jsop
html中的script src属性获取其他源的数据
<script> function getData(){ console.log(res) } <script src="http://www.baidu.com/news?callback=getData"></script> </script>
-
cors跨域资源共享 支持所有的主流浏览器 ie9
XMLHttpResquest发送请求的时候,如果不同源:headers后台处理 : Access-control-allow-origin: *
-
h5 window.postMessage跨域 主流浏览器 ie8
注意:vue中跨域 使用: 代理proxy 本质上 cors跨域
```js
//vue.config.js
proxy:{
target:
changeOrigin:
pathRewrite:
}
```
例如若依:
```
devServer: {
host: '0.0.0.0',
port: port,
open: true,
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
target: `http://localhost:8080`, // 本地服务
// target: `http://8.142.73.31:8199`, // 远程后端服务
// target: `https://kjzc.legutech.com/dev-api`, // 远程域名访问
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''
}
}
},
```