vue框架搭建之框架搭建之axios使用教程使用教程
前后端数据交互作为项目最基础需求(静态的除外),同时也是项目中最重要的需求。
本文重点介绍axios如何配合vue搭建项目框架,而axios的详细使用介绍请移步 使用说明
1、安装、安装
cnpm install axios --save-dev
2、引入、引入
main.js 文件引入:
import Vue from 'vue'//引入vue
import axios from 'axios'//引入axios
Vue.prototype.$axios = axios;//把axios挂载到vue上
3、使用、使用
getStore(){
let that = this
that.$axios({
method: "post",//指定请求方式
url: "/business-app/getCityShopList.cgi",//请求接口(相对接口,后面会介绍到)
data: {
cityId: cityId,
data:{},
isDebug:"1",
longitude: "",
latitude: ""
}
})
.then(function(res){
//接口成功返回结果执行
})
.catch(function(err){
//请求失败或者接口返回失败或者.then()中的代码发生错误时执行
})
}
4、跨域与代理、跨域与代理
在vue本地开发时请求总是发生跨域
解决方案:配置代理解决方案:配置代理
config 下的index.js 文件
proxyTable: {
'/business-app/*': {
target: 'http://****:8080',//被代理的接口
changeOrigin: true,
secure:true // 如果是https接口,需要配置这个参数
}
},
当URL以 ‘/business-app/’层级开端时,把 ‘http://****:8080’ 代理成本地IP
5、、 baseURL与代理与代理
两者用途不一样,
baseUrl会附加到你绑定的axios实例(如果是全局的,那就是所有实例)上,即如果get/post的url参数是相对路径(如)
/api/c/xx,那就会执行 baseUrl + ‘/api/c/xx’,如果未指定baseUrl,那就走浏览器地址栏里的base + baseUrl。
webpack里的proxyTable是测试环境为了避免浏览器下的跨域访问,而以nodejs代理成同前端页面(即浏览器地址栏)同域的
一种处理。指定proxyTable后, axios就不需要指定baseUrl了。proxyTable会把base + ‘/api/c/xx’代理到【base baseUrl +
‘/api/c/xx’】的接口地址上。