Vue: axios 请求封装及设置默认域名前缀 (for Vue 2.0)
1. 实现效果
以get方法向http://192.168.32.12:8080/users 发起请求、获取数据并进行处理
this.apiGet('/users', {})
.then((res) => {
console.log(res)
}, (err) => {
console.log(err)
})
2. 实现步骤一之配置域名前缀
2.1 安装axios
cnpm install axios --save
2.2 配置webpack.base.conf.js 文件
引入
const webpack = require('webpack')
在项目根目录下的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 文件
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 文件, static下边新建 js 文件夹
const apiMethods = {
methods: {
apiGet(url, data) {
return new Promise((resolve, reject) => {
axios.get(url, data).then((response) => {
resolve(response.data)
}, (response) => {
reject(response)
console.log(response)
bus.$message({
message: '请求超时,请检查网络',
type: 'warning'
})
})
})
},
apiPost(url, data) {
return new Promise((resolve, reject) => {
axios.post(url, data, {
headers: {
'Content-Type': 'application/json'
}
}).then((response) => {
resolve(response.data)
}).catch((response) => {
console.log('f', response)
resolve(response)
bus.$message({
message: '请求超时,请检查网络',
type: 'warning'
})
})
})
}
}
}
export default apiMethods
3.2 文件引入
在需要发送ajax的请求文件中引入http.js
import http from '../../../../static/js/http.js'
并在该文件的export default 末尾添加选项
mixins: [http]
3.3 方法调用
this.apiGet('/index.php/api/v1/goods/list', {
params: {
property_name: '秒杀'
}
})
.then((res) => {
if(res.code == ){
this.hotListDate = res.result;
}else{
this.$message.error(res.message);
}
}, (err) => {
console.log(err)
});
post
this.apiPost('/index.php/api/v1/user/login', {
mobile : this.form.phone,
password : this.form.password
})
.then((res) => {
if(res.code == ){
}else{
this.$message.error(res.message);
}
}, (err) => {
console.log(err)
});
Vue: axios 请求封装及设置默认域名前缀 (for Vue 2.0)的更多相关文章
- VUE axios请求 封装 get post Http
创建httpService.js 文件 import axios from 'axios'; import { Loading , Message } from 'element-ui'; impor ...
- vue axios 请求带token设置
API axios.js import axios from "axios"; let AUTH_TOKEN=(function(){ return localStorage.ge ...
- vue axios 请求本地接口端口不一致出现跨域设置代理
首先在config下面的index.js,设置跨域代理 在axios请求的时候 用'/api/' 替代baseURL 最重要的就是设置完必须重新 npm run dev 否则不生效
- Vue Axios 的封装使用
目录 Axios 说明 安装 Axios 请求配置 响应结构 常用请求方法 默认值配置 全局的 请求配置项 自定义实例默认值 配置的优先顺序 拦截器 个人完整 axios 配置 Axios 说明 Ax ...
- axios请求封装和异常统一处理
前端网络请求封装前端采用了axios来处理网络请求,为了避免在每次请求时都去判断各种各样的网络情况,比如连接超时.服务器内部错误.权限不足等等不一而足,我对axios进行了简单的封装,这里主要使用了a ...
- vue axios接口封装、Promise封装、简单的axios方法封装、vue接口方法封装、vue post、get、patch、put方法封装
相信大家在做前后端数据交互的时候都会给请求做一些简单的封装就像之前封装ajax方法一样axios的封装也是一样的简单下面这个就是封装的axios的方法,require.js import axios ...
- 10. vue axios 请求未完成时路由跳转报错问题
axios 请求未完成时路由跳转报错问题 前两天项目基本功能算是完成了,在公司测试时遇到了遇到了一个问题,那就是在请求未完成时进行路由跳转时会报错,想了几种办法来解决,例如加loading,请求拦截, ...
- vue axios请求/响应拦截器
// main.js中配置 // 引入 axios import Axios from 'axios' // 这时候如果在其它的组件中,是无法使用 axios 命令的. // 但如果将 axios 改 ...
- vue axios 请求 https 的特殊处理
最近遇到自签发的CA证书,在前端axios请求https请求时,无法自动加载证书. 解决方法:将无法加载的请求在浏览器新窗口手动加载,选择继续连接. 重新加载,问题解决. 根本原因:因为自签发证书,浏 ...
随机推荐
- readl()和writel()
writel() 往内存映射的 I/O 空间上写数据,wirtel() I/O 上写入 32 位数据 (4字节). 原型: 引用 #include <asm/io.h> void writ ...
- debug jdk source can't watch variable what it is
https://www.cnblogs.com/shuaiqing/p/7525841.html https://stackoverflow.com/questions/18255474/debug- ...
- RDS for MySQL查询缓存 (Query Cache) 的设置和使用
https://help.aliyun.com/knowledge_detail/41717.html?spm=5176.7841698.2.11.aCvOXJ RDS for MySQL查询缓存 ( ...
- c语言文件包含
文件包含是指一个C语言源程序中将另一个C语言源程序包含进来,通过include预处理指令实现. 一般形式: #include”被包含文件名” 或#include<被包含文件名> 2. 作 ...
- 全栈JavaScript之路(十)学习 DocumentFragment 类型 节点
DocumentFragment 类型节点,代表一个文档片段,是一种轻量级的'文档' 对象.能够包括其他类型节点,并有能力訪问.操作当中的节点,可是在文档中没有文档标记,相当于是一个页面不可见的容器. ...
- [Android]Fragment源代码分析(三) 事务
Fragment管理中,不得不谈到的就是它的事务管理,它的事务管理写的很的出彩.我们先引入一个简单经常使用的Fragment事务管理代码片段: FragmentTransaction ft = thi ...
- selenium获取弹窗提示
1.点击保存给的提示是几秒钟,遮罩显示 2. 其他弹窗处理方法 http://blog.csdn.net/Real_Tino/article/details/59068827
- 新手玩个人server(阿里云)
阿里云如火如荼的0元活动,事实上一開始我仅仅是去直播吧看阿森纳vs贝西克塔斯.姑且算是一种乱入,url这样的奇妙的东西应该是万维网的最真实的写照.当然那是上周第一会回合的事了.可是故事却如此的类似.并 ...
- spark定制之五:使用说明
背景 spark-shell是一个scala编程解释运行环境,能够通过编程的方式处理逻辑复杂的计算,但对于简单的类似sql的数据处理,比方分组求和,sql为"select g,count(1 ...
- java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState问题解决
(1)我用的是fragment,在onStop但是没有onDestroy的情况下切换(replace)fragment时报 java.lang.IllegalStateException: Can n ...