Loading

跨域

跨域出现的原因是因为:同源策略

同源策略:(缺一不可)

  • 域名
  • 端口
  • 协议

如果不满足以上三个条件的任何一个 那么则构成跨域 违反同源策略

解决跨域的常用方式:

  1. jsop

    html中的script src属性获取其他源的数据

    <script>
        function getData(){
            console.log(res)
        }
        <script src="http://www.baidu.com/news?callback=getData"></script>
    </script>
    
  2. cors跨域资源共享 支持所有的主流浏览器 ie9
    XMLHttpResquest发送请求的时候,如果不同源:headers

    后台处理 : Access-control-allow-origin: *

  3. 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]: ''
        }
      }
},
``` 
posted @ 2022-08-01 15:32  雾气^^  阅读(28)  评论(0编辑  收藏  举报