vue中代理服务器的使用

代理服务器简单点说,就是把代理人去获取用户数据,就不用每次都去请求地址,
##### 注意下面写的地址都是乱写的,你写的是自己的地址

如果报错,第一看代理的是不是自己写的地址,还有修改过.env文件一定要重新启动
现在我们开始写说代理服务器吧
1.第一步,先创建一个.env.development

在这里插入图片描述

# just a flag
ENV = 'development'
//解释一下
//.env 全局默认配置文件,不论什么环境都会加载合并
//.env.development 开发环境下的配置文件,就是开始环境的时候会引用这个文件里面的配置
//.env.production 生产环境下的配置文件,

# base api
VUE_APP_BASE_API = 'http://127.0.0.0/'   

//VUE_APP_BASE_API = 'http://127.0.0.0:9528/api'   ,这是我的业务需要类型,
//这是去axios要使用的地址
//注意:这个地址是你自己的地址,这个地址是我乱写的,看你业务需求,还有不要把注释复制进去,我怕有什么影响,
//修改这个文件一定要重启服务,而不是刷新,
第二步创建一个vue.config.js

在这里插入图片描述

module.exports = {
    devServer:{
        //自动打开页面
        open: true,
        //代理
        proxy:{
              // 对象中键是本地请求地址,值是代理服务器配置对象
             // 注意: vue/cli已经安装并配置了代理模块,可以直接用
            "/dev-api":{
                target:'http://127.0.0.0:9528',// 要跨域的域名
                //是否开启跨域
                changeOrigin: true,
                // 其实,用代理的话, 首先你得有一个标识, 告诉他你这个连接要用代理. 不然的话, 可能你的 html, css, js这些静态资源都跑去代理. 所以我们只要接口用代理, 静态文件用本地.
                pathRewrite:{
                    // "^/dev-api":{}表示接口^/dev-api以开头的要用代理,^/dev-api就是上面的地址
                  '^/dev-api':'/api',//
                //   '^/dev-api': ''表示把/dev-api替换为‘’(空字符串),这样既能使用代理,又能在请求接口api时去掉/dev-api,获得正确的短信api路径
                }
            }
        }
    }
}
第三步需要去请我用的axios请求

我们要使用axios请求就需要安装这个插件
这个是安装命令

npm install axios --save

1.创建一个request.js文件
在这里插入图片描述

import axios from 'axios --save'

const service = axios.create({
 // baseURL   // 设置url的基础结构,发送请求配置时只需要设置url即可,axios会自动将两者进行拼接
  baseURL: process.env.VUE_APP_BASE_API,  //这就是获取.env文件里面写的地址
  //timeout    // 超时请求时间,单位是ms 超过请求时间,请求就会被取消
  timeout: 5000 
})

//请求拦截器
service.interceptors.request.use(
   config => {
    return config
  },
  error => {
    return error
  }
)
//相应拦截器
service.interceptors.response.use(
  response => {
    return response 
  },
  error => {
    return error
  }
)

export default service

第四步请求参数

在创建一个js文件
在这里插入图片描述

import request from './request.js'

//获取商品列表
//options={}//这样写可以在里面传参
 export  function getShopList(options={}){
    return  request({
        url:'/goodList',//我要请求的参数
        method:'get',
        params:options,
    })
   
}
最后一步在页面上使用

在这里插入图片描述

<template>
  <div id="app"></div>
</template>

<script>
import { getShopList } from "./shop.js";
export default {
  name: "App",
  methods: {
    //这是为了不用再页面.then,这种写必须写在异步里面,
    async getShopList_init() {
    //可以向里面传参
      let result = await getShopList({
        //这个是我请求我服务器里面的数据的页数,这里面就可以写你要请求的数据,根据你自己的需求
        page:1,
      });
      console.log(result.data);
    },
  },
  created() {
    // console.log(getShopList());
    this.getShopList_init();
  },
};
</script>

<style>
</style>

最后效果图

在这里插入图片描述

Logo

前往低代码交流专区

更多推荐