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请求时,无法自动加载证书. 解决方法:将无法加载的请求在浏览器新窗口手动加载,选择继续连接. 重新加载,问题解决. 根本原因:因为自签发证书,浏 ...
随机推荐
- Intellij Idea 13:重置设置
最近在将Windows下的Idea的设置导入到Mac下的时候,一时手贱,点了全部结果发现悲剧了,所有的快捷键都变成和Windows的一样了.于是我就在CMD+C,V和Ctrl+C,V中不断的进行头脑锻 ...
- HDU 4598
这道题其实不需要考虑具体数值,但可以肯定的是,相连边的两端点必定有一正一负,至于谁正谁负,并不重要,这是可以思考的,很明显的一个二分图性质,如果不满足此条件,是不可能满足题目第二个条件的.所以首先对题 ...
- [Cypress] Test Variations of a Feature in Cypress with a data-driven Test
Many applications have features that can be used with slight variations. Instead of maintaining mult ...
- js+jquery动态设置/添加/删除/获取元素属性的两种方法集锦对照(动态onclick属性设置+动态title设置)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html140 ...
- 一个NHibernate的BUG
一.背景 我们如今做的项目,用NHibernate实现数据訪问层. 訪问数据时,有的数据库表是确定的:有明白的表名.字段名.这时候依照常规的方法处理就可以:建立数据库表到类的映射.使用HQL读写数据库 ...
- poj 2931 Building a Space Station <克鲁斯卡尔>
Building a Space Station Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 5869 Accepted: 2 ...
- php循环,die/exit脚本执行控制,文件载入及错误控制
循环控制 大部分和c/java同样 for循环 while循环 do while循环 foreach循环(特有) 循环中断 : 1.break: 用于全然停止某个循环,让运行流程进入到循环语句后面的语 ...
- Jmeter压测问题_Non HTTP response code: org.apache.http.conn.ConnectTimeoutException
负载机压测,线程500,服务器根本无压力,负载机本身发的请求都是失败的 Sample result如下: Thread Name: 考勤(考勤提交) 1-134 Sample Start: 2018- ...
- jenkins设置
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PAT ...
- [NOIP 2016] 蚯蚓
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4721 [算法] 首先,我们可以维护一个堆,堆中存放蚯蚓的长度,由于除当前蚯蚓其他的蚯 ...