vue基础之axios模块化+反向代理

Posted jinchange

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue基础之axios模块化+反向代理相关的知识,希望对你有一定的参考价值。

 

1>如何将axios代码从main.js文件中独立出来(模块化开发类似node.js)?

  .创建axios.js文件

  .在main.js中引入axios.js代码(其他js代码的模块化以此类推)

  

import Axios from ‘./axios/axios‘//引入axios分离文件

 

2>奉上封装的axios.js模块代码

import Vue from "vue";
import axios from ‘axios‘   
import Qs from ‘qs‘  
Vue.prototype.$http = axios.create(
  transformRequest: [function (data) //调用时自动变成表单数据
      data = Qs.stringify(data);
      return data;
  ],
  headers:‘Content-Type‘:‘application/x-www-form-urlencoded‘//默认请求头为表单数据
)

注:因为后台接收的是表单数据而不是json数据,因此将设置将传入的数据统一转化成表单数据;并将axios写入原型方便调用

 

3>在vue组件中发送请求直接  thsi.$http...

.post请求:

this.$http.post("后台接口地址",data).then((res)=>//data是传给后台的对象
   //..
)
.catch((err)=>
           
)

 

3>补充:vue反向代理实现前端跨域

.在项目根目录下新建vue.config.js文件写入以下代码

module.exports = 
    devServer: 
        proxy: 
            ‘/api‘: 
                target: ‘后端接口根路径‘,//例如http://www.baidu.com
                ws: true,
                changeOrigin: true,
                pathRewrite: 
                ‘^/api‘: ‘/‘  //调用时用api替代根路径
                
            
        
    

 

.调用例子

this.$http.post("api/login",data).then((res)=>//模拟访问登录接口,提交登录数据
   //..
)
.catch((err)=>
           
)

 

以上是关于vue基础之axios模块化+反向代理的主要内容,如果未能解决你的问题,请参考以下文章

vue cli 解决跨域 线上 nginx 反向代理配置

Nginx系列之反向代理相关模块

Nginx:17---反向代理之(反向代理服务器的性能调优:缓冲数据缓存数据存储数据压缩数据(gzip模块))

Nginx:--反向代理之(负载均衡-upstream模块)

Nginx:--反向代理之(负载均衡-upstream模块)

高性能Web服务之Httpd+Tomcat实现负债均衡反向代理实现