如何解决跨域

首先需要了解,何为跨域?
跨域:指的是协议、 域名 端口 三者有一个,当前端项目运行的服务地址 和 接口服务运行的地址不一致就会出现跨域,受同源策略的影响。
所以我们需要解决这个问题?方案有以下几种

cors

这种主要有后端开发人员主导,开启允许我们跨域的接口
cors (后端主导)
际上就是在响应头添加允许跨域的源:Access-Control-Allow-Origin: 字段和值(意思就是允许去哪些源地址去请求这个服务器)

jsonp方式

需要前端和后端同时支持
前端用script+src属性, 发送函数名给后台, 同时准备好同名的函数, 准备接收数据
后端返回的字符串一定用方法名(数据字符串)格式返回, 到script标签中执行

调用函数名, 并传递数据

代理转发proxy

通过vue-cli 做接口代理转发 (前端主导)

更多配置官网

module.exports = {
  devServer: {
   // 代理配置
    proxy: {
        // 表示如果我们的请求地址有/api的时候,就出触发代理机制
        // 接口域名发生变化 其余地址保持不变
        '/api': {
            target: '真实接口地址写到这里', // 我们要代理的真实接口地址
            changeOrigin: true, // 是否跨域 需要设置此值为true 才可以让本地服务代理我们发出请求
             pathRewrite: {
          '^/api': '' // 因为真实路径中如果并没有/api这段, 所以要去掉这段才能拼接正确地址转发请求
        }
         }
    }
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值