Vue: axios 请求封装及设置默认域名前缀 (for Vue 2.0)
2018-03-27 11:08
1046 查看
1. 实现效果
以get方法向http://192.168.32.12:8080/users 发起请求、获取数据并进行处理this.apiGet('/users', {})
.then((res) => {
console.log(res)
}, (err) => {
console.log(err)
})2. 实现步骤一之配置域名前缀
2.1 安装axioscnpm install axios --save2.2 配置webpack.base.conf.js 文件
在项目根目录下的build 中可以找到webpack.base.conf.js 文件,对文件中的内容进行以下两项操作:
在module.exports之前插入代码
axios.defaults.baseURL = HOST
window.axios = axios
window.HOST = HOST
const bus = new Vue()
window.bus = bus
3. 实现步骤二之封装axios
3.1 新建http.js 文件const apiMethods = {
methods: {
apiGet(url, data) {
return new Promise((resolve, reject) => {
axios.get(url, data).then((response) => {
resolve(response.data)
}, (response) => {
reject(response)
bus.$message({
message: '请求超时,请检查网络',
type: 'warning'
})
})
})
},
apiPost(url, data) {
return new Promise((resolve, reject) => {
axios.post(url, data).then((response) => {
resolve(response.data)
}).catch((response) => {
console.log('f', response)
resolve(response)
bus.$message({
message: '请求超时,请检查网络',
type: 'warning'
})
})
})
}
}
}
export default apiMethods3.2 文件引入
在需要发送ajax的请求文件中引入http.jsimport http from '../../../../static/js/http.js'并在该文件的export default 末尾添加选项mixins: [http]3.3 方法调用this.apiGet('/users', {})
.then((res) => {
console.log(res)
}, (err) => {
console.log(err)
})
以get方法向http://192.168.32.12:8080/users 发起请求、获取数据并进行处理this.apiGet('/users', {})
.then((res) => {
console.log(res)
}, (err) => {
console.log(err)
})2. 实现步骤一之配置域名前缀
2.1 安装axioscnpm install axios --save2.2 配置webpack.base.conf.js 文件
在项目根目录下的build 中可以找到webpack.base.conf.js 文件,对文件中的内容进行以下两项操作:
在module.exports之前插入代码
// define the different HOST between development and production environment var DEV_HOST = JSON.stringify('http://192.168.32.12:8080') var PUB_HOST = JSON.stringify('http://{部署服务器ip和端口}')在module.exports 中添加与entry、output、resolve等选项并列的plutins选项
plugins: [ new webpack.DefinePlugin({ HOST: process.env.NODE_ENV === 'production' ? PUB_HOST : DEV_HOST }) ]2.3 配置main.js 文件main.js 位于项目根目录的src目录下,在其中添加以下代码import axios from 'axios'
axios.defaults.baseURL = HOST
window.axios = axios
window.HOST = HOST
const bus = new Vue()
window.bus = bus
3. 实现步骤二之封装axios
3.1 新建http.js 文件const apiMethods = {
methods: {
apiGet(url, data) {
return new Promise((resolve, reject) => {
axios.get(url, data).then((response) => {
resolve(response.data)
}, (response) => {
reject(response)
bus.$message({
message: '请求超时,请检查网络',
type: 'warning'
})
})
})
},
apiPost(url, data) {
return new Promise((resolve, reject) => {
axios.post(url, data).then((response) => {
resolve(response.data)
}).catch((response) => {
console.log('f', response)
resolve(response)
bus.$message({
message: '请求超时,请检查网络',
type: 'warning'
})
})
})
}
}
}
export default apiMethods3.2 文件引入
在需要发送ajax的请求文件中引入http.jsimport http from '../../../../static/js/http.js'并在该文件的export default 末尾添加选项mixins: [http]3.3 方法调用this.apiGet('/users', {})
.then((res) => {
console.log(res)
}, (err) => {
console.log(err)
})
相关文章推荐
- vue2.0设置proxyTable使用axios进行跨域请求的方法
- Vuejs2.0之异步跨域请求——axios
- 在 vue-cli 里基于 axios 封装复用请求
- Vue项目中对axios进行封装以及api接口请求
- vue2.0 axios发送post请求,后端参数获取不到的解决方式
- vue2.0设置默认路由的代码,以及点击不同路由加上样式的api
- vue2.0项目实战(3)使用axios发送请求
- vue中axios 配置请求拦截功能 及请求方式如何封装
- vue2.0 下拉框默认标题设置
- vue2.0数据请求之axios
- Vue2.0 axios请求以及loading展示
- Vue2.0 封装axios
- vue之请求方法--axios
- Vue2.0+ElementUi封装table组件实现分页功能
- Extmail:SASL认证默认域名问题,解决OUTLOOK中用户名须设置邮箱全名问题
- vue 请求 之 axios
- 一个百思不得其解的“ASP.NET 2.0网站运行提示: HTTP 错误 401.3 - 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。 ”错误
- Vue 爬坑之路(六)—— 使用 Vuex + axios 发送请求
- SpringMVC设置默认请求首页
- vue-cli axios请求方式及跨域处理问题