问题
后端已经配置好了跨域,前端本地搭建vue-cli测试环境的时候如何解决跨域?(前提进行了基本的axIOS封装)分析【axios配置vue项目本地测试环境跨域解决方法】这个时候后端API是一个明确的外网环境(使用外网IP或固定域名访问),需要通过vue-cli脚手架搭建一个代理模式访问API接口 。因为,本地测试环境默认访问的前端地址是 http://localhost:8080/,除非AP接口也是这地址和接口,不然必然出现跨域问题(跨域是浏览器的限制)
以通过代理的方式,将以本地请求,变成接口服务器自请求,即,在本地看到的请求会是:
http://ttapi.research.itcast.cn/App/v1_0/authorizations这个接口为例,
基础地址是
http://ttapi.research.itcast.cn
http://localhost:8080/api/app/v1_0/authorizations
解决
- 创建vue.config.js文件
//vue.config.jsmodule.exports = {devServer: {proxy: {"/api": {// 这里的`/api`是自定义的target: "http://ttapi.research.itcast.cn/", //这里是真实的接口baseURLchangeOrigin: true,ws: true,pathRewrite: {"^/api/": "", // 这里的`^/api`也是是自定义的},},},},};
注意上面的注释部分
- /api和^/api都是自定义的,可以随意设置,但是,后面在axios封装部分需要特别注意
- target是后端接口的真实基础路径部分,也就是一般axios封装配置的baseURL
let api_base_url = "";if (process.env.NODE_ENV === "development") {api_base_url = "/api"; //这里填写测试环境地址,必须和`vue.config.js`那里的第一个路径一致} else if (process.env.NODE_ENV === "production") {api_base_url = "http://ttapi.research.itcast.cn/"; //生产环境}let instance = axios.create({timeout: 1000 * 60,baseURL: api_base_url,});
封装axios的时候,测试环境的baseURL必须是和vue.config.js里面的第一个路径完全一致3.接口模块写法不做任何改变
推荐阅读
- 前端开发框架之Vue开发流程与使用
- 详解Python软件安装教程和配置,小白都能看懂的教程,值得收藏
- 前端开发之VUE介绍与使用
- macOS安装配置Windows10
- Windows 域控配置时间同步
- 静态路由配置入门讲解
- 交换机划分VLAN
- 安全基线检查和配置脚本源码
- Nginx - 最小配置!你值得拥有
- Springboot配置文件加载路径及使用方式你真的都了解了吗?