浅谈-跨域

什么是跨域

一个url是由协议,域名,端口(默认80)组成,当一个url的协议域名端口三者之间任意有一个与当前页面url不同时为跨域

产生原因

由于浏览器的同源策略

同源策略(same origin policy)

是一种约定,它是浏览器核心也是基本的安全功能,它会阻止一个域的js脚本与另外一个域的内容进行交互,如果缺少了同源策略,浏览器容易受到xss,crr攻击
所谓同源(既在一个域),就是这两个页面具有相同的协议主机和端口号

非同源会出现的限制

  1. 无法读取非同源网页的cookie,localStroage
  2. 无法接触非同源网页的dom和js请求
  3. 无法向非同源地址发送ajax请求

如何解决跨域

proxy 配置代理

devServer: {
    hot: true,
    compress: true,
    disableHostCheck: true,
    proxy: {
      '/api': {
        target: 'http://152.136.185.210:5000', //你的接口地址
        changeOrigin: true, //是否跨域
        pathRewrite: {
          '^/api': '' //接口重写,表示/api开头的就是代理到target,即http://xxxx:8002/Home
        }
      }
    },
    historyApiFallback:true
  },

ngix方向配置代理(我没用过)

nginx是静态服务器,跨域请求放在api下面好管理http://www.baidu.com:80/api/user
可以在nginx下面的config下面的nginx.conf里面配置
从80端口进来的就拦截一下,代理到81端口

server{
        location /api {
                //拦截一下
                proxy_pass  http://www.baidu.com:81;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值