Vue 调试访问本地后端接口配置

 更新时间:2023年06月09日 14:48:41   作者:枸杞泡茶呀  
记录一下本地测试前端的时候怎么访问本地后端接口,文中给大家提到了vue如何做调试后台接口的配置和proxy的工作原理以及为什么能解决跨域,感兴趣的朋友跟随小编一起看看吧

Vue 调试访问本地后端接口配置

记录一下本地测试前端的时候怎么访问本地后端接口。时间太长容易忘。。。。

1、首先要知道前端在访问后端的时候是怎么加上后端接口地址的。

如下图,找到封装http请求的文件,src/utils/rerquest.js
该图中的baseURL就是访问时我们加上的后端请求地址。
baseURL: process.env.VUE_APP_BASE_API 表示baseURL使用的是环境变量中的VUE_APP_BASE_API这个参数

在本地测试前端的时候使用的命令一般都是npm run dev
然后dev使用的默认环境变量文件是 .env.development
简单来说,只要在.env.development中配置了VUE_APP_BASE_API参数,那么在本地测试的时候默认使用的后端地址就是在这个文件中配置的地址。

一篇看懂 vue 如何做调试后台接口的配置和 proxy 的工作原理 以及为什么能解决跨域

之前也做过不少vue项目了,每次跟后台配合的时候,有些配置总是会忘记,感觉每次的解决方案和上一次的都不一样,所以这次准备详细的记录一下,如何做配置,以及一些配置的含义

话不多说 直接开始

1.首先要想调取后台接口一定要引入的就是axios,所以第一步就是下载 axios

npm install axios

2.在需要调用接口的页面引入axios

import axios from 'axios'

2.1发送请求

axios({
        method: "post",
        url: "接口地址",
        data: this.data,
        headers: { "Content-Type": "multipart/form-data" },
      }).then(e => {
        console.log(e)
      })

此时不出意外控制台应该是报错了,应该是报的跨域的错,此时就要做一下对vue.config.js 文件的配置

2.2 vue.config.js
为什么要配置这么文件呢,配置这个文件的目的是什么呢?
因为我们知道浏览器和服务器之间会存在跨域问题,但是两个服务器之间确实可以随意访问的,所以我们要配置一个代理服务器来调用用服务器的接口,如果你的前端应用和后端 API 服务器没有运行在同一个主机上,你需要在开发环境下将 API 请求代理到 API 服务器,此时可以通过 vue.config.js 中的 devServer.proxy 选项来配置。

devServer: {
    port: '9080',
    open: true,
    proxy: {
      '/api': {
        target: 'http://192.168.2.108:9080/crm',//代理地址,这里设置的地址会代替axios中设置的baseURL
        secure: false, //如果是https接口需要进行此配置 
        changeOrigin: true,// 如果接口跨域,需要进行这个参数配置
        //pathRewrite方法重写url
        pathRewrite: {
          '^/api': '/aaa' //如果没有pathRewrite属性 调用的接口就是http://cloud/api/xxx/xxxx 如果有 pathRewrite属性 调用的接口就是 http://cloud/aaa/xxx/xxxx
         }
        }
      }
    },
  },

devServer里面proxy则是关于代理的配置,该属性为对象的形式,对象中每一个属性就是一个代理的规则匹配

属性的名称是需要被代理的请求路径前缀,一般为了辨别都会设置前缀为/api,值为对应的代理匹配规则,对应如下:
tip: 如果接口地址没有一个统一的前缀 如 /api 可以设置一个 axios.defaults.baseURL = ‘/api’ 即可为所有接口地址添加一个统一的前缀 /api

target:表示的是代理到的目标地址
pathRewrite:默认情况下,我们的 /api 也会被写入到URL中,如果希望删除,可以使用pathRewrite 如果你的接口中本身就带有 /api 可以不写 pathRewrite
secure:默认情况下不接收转发到https的服务器上,如果希望支持,可以设置为false
changeOrigin:它表示是否更新代理后请求的 headers 中host地址

3.工作原理

proxy实质就是一个代理服务器 这样就能理解 proxy 工作原理实质上是利用http-proxy-middleware 这个http代理中间件,实现请求转发给其他服务器

举个例子:

在开发阶段,本地地址为http://localhost:3000,该浏览器发送一个前缀带有/api标识的请求到服务端获取数据,但响应这个请求的服务器只是将请求转发到另一台服务器中

说的再通俗一点 就是 A(浏览器) 想认识(发请求) C(服务器) 但是 由于碍于面子(同源政策) 只能 通过 B(proxy) 来介绍,也就是 A 发送请求给 B 再由 B 转发请求给 C

4.跨域

在开发阶段,devServer 会启动一个本地开发服务器,所以我们的应用在开发阶段是独立运行在 localhost的一个端口上,而后端服务又是运行在另外一个地址上

所以在开发阶段中,由于浏览器同源策略的原因,当本地访问后端就会出现跨域请求的问题

通过设置 proxy 实现代理请求后,相当于浏览器与服务端中添加一个代理者

当本地发送请求的时候,代理服务器响应该请求,并将请求转发到目标服务器,目标服务器响应数据后再将数据返回给代理服务器,最终再由代理服务器将数据响应给本地

请添加图片描述

在代理服务器传递数据给本地浏览器的过程中,两者同源,并不存在跨域行为,这时候浏览器就能正常接收数据

到此这篇关于Vue 调试访问本地后端接口配置的文章就介绍到这了,更多相关vue后端接口配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于vue和websocket的多人在线聊天室

    基于vue和websocket的多人在线聊天室

    这篇文章主要介绍了基于vue和websocket的多人在线聊天室,需要的朋友可以参考下
    2020-02-02
  • Vue中用props给data赋初始值遇到的问题解决

    Vue中用props给data赋初始值遇到的问题解决

    这篇文章主要介绍了Vue中用props给data赋初始值遇到的问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • 详解如何在Vue中进行表单自定义验证

    详解如何在Vue中进行表单自定义验证

    在Vue应用中,表单验证是非常重要的一部分,Vue提供了一些内置的验证规则,比如required、min、max等,但是有时候我们需要对表单进行自定义验证,以满足特定的业务需求,本文将介绍如何在Vue中进行表单自定义验证,感兴趣的朋友可以参考下
    2023-12-12
  • vue项目中data数据之间互相访问的实现

    vue项目中data数据之间互相访问的实现

    本文主要介绍了vue项目中data数据之间互相访问的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • vue中使用v-model完成组件间的通信

    vue中使用v-model完成组件间的通信

    vue中有一个很神奇的东西叫v-model,它可以完成我们的需求。,本文重点给大家介绍vue中使用v-model完成组件间的通信,需要的朋友可以参考下
    2019-08-08
  • elementui中使用el-tree控件懒加载和局部刷新

    elementui中使用el-tree控件懒加载和局部刷新

    这篇文章主要介绍了elementui中使用el-tree控件懒加载和局部刷新,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • vant(ZanUi)结合async-validator实现表单验证的方法

    vant(ZanUi)结合async-validator实现表单验证的方法

    这篇文章主要介绍了vant(ZanUi)结合async-validator实现表单验证的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • element中el-autocomplete的常见用法示例

    element中el-autocomplete的常见用法示例

    这篇文章主要给大家介绍了关于element中el-autocomplete的常见用法的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用element具有一定的参考学习价值,需要的朋友可以参考下
    2023-03-03
  • uniapp中使用lottie实现JSON动画的操作步骤

    uniapp中使用lottie实现JSON动画的操作步骤

    这篇文章主要介绍了如何在项目中使用JSON动画组件,包括创建目录结构、下载JSON文件、编写自定义组件代码以及组件的使用方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-01-01
  • 详解为什么Vue中不要用index作为key(diff算法)

    详解为什么Vue中不要用index作为key(diff算法)

    这篇文章主要介绍了详解为什么Vue中不要用index作为key(diff算法),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04

最新评论