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零基础入门axios的使用

    VUE零基础入门axios的使用

    这篇文章主要介绍了axios在Vue项目中用来向后台发送请求(调接口API),获取响应信息的方法,axios 是一个轻量的 HTTP客户端,基于 XMLHttpRequest 服务来执行 HTTP 请求,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Vue+java实现时间段的搜索示例

    Vue+java实现时间段的搜索示例

    本文主要介绍了Vue+java实现时间段的搜索示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • vue项目中应用ueditor自定义上传按钮功能

    vue项目中应用ueditor自定义上传按钮功能

    这篇文章主要介绍了vue项目中应用ueditor自定义上传按钮功能,文中以vue-cli生成的项目为例给大家介绍了vue项目中使用ueditor的方法,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-04-04
  • Vue-ANTD表单输入中自定义校验一些正则表达式规则介绍

    Vue-ANTD表单输入中自定义校验一些正则表达式规则介绍

    这篇文章主要介绍了Vue-ANTD表单输入中自定义校验一些正则表达式规则介绍,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • vue+axios实现post文件下载

    vue+axios实现post文件下载

    这篇文章主要为大家详细介绍了vue+axios实现post文件下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • vue3如何使用postcss-px-to-viewport适配屏幕

    vue3如何使用postcss-px-to-viewport适配屏幕

    这篇文章主要介绍了vue3如何使用postcss-px-to-viewport适配屏幕问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Vue2源码解析之自定义指令

    Vue2源码解析之自定义指令

    自定义指令,其实就是在vue提供的钩子中写代码,这篇文章将从源码的角度,带大家深入了解一下Vue2种自定义指令的实现与使用,需要的可以参考一下
    2023-05-05
  • vue踩坑记之npm install报错问题解决总结

    vue踩坑记之npm install报错问题解决总结

    当你跑起一个项目的时候,第一步需要先安装依赖npm install,下面这篇文章主要给大家介绍了关于vue踩坑之npm install报错问题解决的相关资料,需要的朋友可以参考下
    2022-06-06
  • vue项目实现对某个区域绘制水印

    vue项目实现对某个区域绘制水印

    这篇文章主要为大家详细介绍了vue项目实现对某个区域绘制水印,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • vue3 reactive 请求接口数据赋值后拿不到的问题及解决方案

    vue3 reactive 请求接口数据赋值后拿不到的问题及解决方案

    这篇文章主要介绍了vue3 reactive 请求接口数据赋值后拿不到的问题及解决方案,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2024-04-04

最新评论