一.Axios基本用法

安装

 npm install axios --save

axios跨域解决

第一步:config中index.js中配置

   proxyTable: {'/yizhan': {target: 'https://m.1zhanche.com',changeOrigin: true,pathRewrite: {'^/api': ''}},'/top': {target: 'https://www.apiopen.top',changeOrigin: true,pathRewrite: {'^/top': ''}},'/damai': {target: 'http://www.web520.xyz/web-projectAPI/index.php',changeOrigin: true,pathRewrite: {'^/damai': ''}}},

第二步:使用

let dataParam = {start:10,count:10
}
axios.get('/api/v2/movie/top250',{params: {...dataParam,}
})
.then(function (res) {console.log(res.data)
})
let dataP = {q:"挪威的森林"
}
axios.get('/api/v2/book/search',{params: {...dataP,}
})
.then(function (res) {console.log(res.data)
})

二.封装api

形式1:

import axios from 'axios'
axios.interceptors.request.use(function (config) {console.log("a")return config;
}, function (error) {// 对请求错误做些什么return Promise.reject(error);
});
axios.interceptors.response.use(function (response) {console.log("b")return response;
}, function (error) {// 对响应错误做点什么return Promise.reject(error);
    });//page=1export const femaleNameApi = function (paramsData) {return axios.get('/top/femaleNameApi',{params: {...paramsData,}}).then(res=>res.data)}//nameexport const searchMusic = function (paramsData) {return axios.get('/top/searchMusic',{params: {...paramsData,}}).then(res=>res.data)}

调用api

import {getBook,getMovies} from './api/api'
created:function () {let dataParam = {start:10,count:10}getMovies(dataParam).then((data)=>{console.log(data)})let dataP = {q:"村上春树",count:10,start:10}getBook(dataP).then((data)=>{console.log(data.books)})
}

形式2:使用promise封装axios

import axios from 'axios';import router from '../router'; axios.defaults.timeout = 100000;/*const apiUrl = 'http://shopping.zhongguotengcha.com';*/const apiUrl = 'http://vinetea.weibeicc.com';axios.interceptors.request.use((config) => {let pathUrl = ['/index/login_with_pwd','/index/login_with_msgCode','/mobileCode/send_mobile_code','/index/register','/mobileCode/check_code_no_login','/index/reset_loginPwd',];const token = JSON.parse(window.localStorage.getItem('token')) || '';if (!pathUrl.some((it) => config.url.endsWith(it))) {if (token) {config.headers['Authorization'] = `${token}`;}}return config;},function(error) {// Do something with request errorreturn Promise.reject(error);});axios.interceptors.response.use(function(response) {if (!response.config.url.endsWith('/user/get_user_by_token')) {// Do something with response dataif (response.data.code === 403) {router.push({ path: '/login' });}}return response;},function(error) {// Do something with response errorreturn Promise.reject(error);});const axiosPost = (url, params = {}) => {return new Promise((resolve, reject) => {axios.post(apiUrl + url, params).then((response) => {resolve(response.data);},(err) => {reject(err);}).catch((error) => {reject(error);});});};const axiosGet = (url, params = {}) => {return new Promise((resolve, reject) => {axios.get(apiUrl + url, {params: params,}).then((response) => {resolve(response.data);},(err) => {reject(err);}).catch((error) => {reject(error);});});};export default {get: axiosGet,post: axiosPost,};

二.使用
方法1:
1.main.js

import ajax from "./data/api.js"
Vue.prototype.$ajax = ajax;

2.app.vue

let params = {page:1
}
this.$ajax.get("/top/femaleNameApi",params).then((res)=>{console.log(res);
})

形式3:加入await和ansyc的使用
1.main.js

import ajax from "./data/api.js"
Vue.prototype.$ajax = ajax;

2.app.vue

created:async function(){
let params = {
page:1
}
await this.femaleNameApi(params);
},
methods:{
async femaleNameApi(params){
let res = await this.$ajax.get("/top/femaleNameApi",params);
console.log(res.data);
}
}

axios,拦截器,封装相关推荐

  1. axios拦截器封装与使用

    拦截器封装 import axios from "axios" // 创建axios 赋值给常量service const service = axios.create();// ...

  2. axios拦截器封装

    什么是axios? axios是通过promise实现对ajax技术的一种封装,就像jQuery实现ajax封装一样.简单来说: ajax技术实现了网页的局部数据刷新,axios实现了对ajax的封装 ...

  3. axios 拦截器封装

    1.新建文件request.js import axios from 'axios'// 创建axios实例 const service = axios.create({baseURL: proces ...

  4. Vue2学习小记-给Vue2路由导航钩子和axios拦截器做个封装

    1.写在前面 最近在学习Vue2,遇到有些页面请求数据需要用户登录权限.服务器响应不符预期的问题,但是总不能每个页面都做单独处理吧,于是想到axios提供了拦截器这个好东西,再于是就出现了本文. 2. ...

  5. Vue2学习小记-给Vue2路由导航钩子和axios拦截器做个封装 1

    1.写在前面 最近在学习Vue2,遇到有些页面请求数据需要用户登录权限.服务器响应不符预期的问题,但是总不能每个页面都做单独处理吧,于是想到axios提供了拦截器这个好东西,再于是就出现了本文. 2. ...

  6. 封装axios加载动画Loding——vuex+axios拦截器

    封装axios加载动画Loding--vuex+axios拦截器 前言:我们在axios发送请求时候,会存在请求等待时长,我们一般会加一个动画,如果很多个时候一个一个的加动画代码看起来很臃肿很冗余,我 ...

  7. 5 拦截器拦截请求路由_手写简易版axios拦截器,实现微信小程序wx.request的封装与拦截...

    前言: axios是一个功能强大的网络请求库,其中拦截器又是axios的精髓.在小程序的开发或者需要手动实现ajax的时候,没有实现对请求的拦截,开发的时候非常不方便,因此手写一个简易版的axios拦 ...

  8. axios拦截器_78.1K 的 Axios 项目有哪些值得借鉴的地方

    Axios 是一个基于 Promise 的 HTTP 客户端,同时支持浏览器和 Node.js 环境.它是一个优秀的 HTTP 客户端,被广泛地应用在大量的 Web 项目中. 由上图可知,Axios ...

  9. vue2中使用axios,以及axios拦截器的配置

    目录 一.vue2项目中如何实现异步请求 1.axios:是一个基于Promise的网络请求库.既可以在node.js(服务器端)使用,也可以在浏览器端使用 2.vue中的使用方法 ​ (2)引用方法 ...

  10. axios拦截器、ElementUI组件的使用

    一.axios拦截器 1.axios模块的作用 是对基于http请求的封装.在浏览器对异步请求对象XMLHttpRequest进行封装 2.拦截器 ​ (1)请求拦截器:对客户端发起的请求进行统一的前 ...

最新文章

  1. mysql 主从配置
  2. 地址栏射击游戏!对,你没看错,就是在地址栏上玩的游戏,有图有真相!
  3. 如何删除一个VDP服务器
  4. javascript --- 混入
  5. 编写高质量可维护的代码:优雅命名
  6. 05_HttpClient_模拟登陆
  7. 归并排序的实现-代码
  8. Android 系统(43)---HTTPS
  9. git rebase基础
  10. 从安装认识Angular 2
  11. 怎么做app图标_App拉新:以老拉新活动怎么做?
  12. matlab 中使用 GPU 加速运算
  13. Vue.js自定义指令的用法与实例
  14. 实时控制软件第二次作业
  15. 3 个很酷的 Python 库,可以节省您的时间和精力
  16. iOS开发图片加载的内存问题及优化方案
  17. 爬取《全职高手之巅峰荣耀》的豆瓣影评,分析漫改电影的优劣好坏
  18. 推荐几个免费的在线文本转语音网站(支持中英文多种语音)
  19. Python实现词频统计的两种方法
  20. 读书的理由——好书推荐

热门文章

  1. flutter Chip 组件
  2. 五一出行适合佩戴的骨传导耳机有哪些,最受欢迎的骨传导推荐
  3. 易企cms调用标签整理
  4. 树莓派sd卡格式化_树莓派初体验
  5. SCEP 离线更新病毒库
  6. 云栖精选8月刊丨最全2016云栖大会资料大放送!技术精彩值得打call!
  7. 计算机考研二战值不值得,应届生考上了事业编,不想去,想二战考研,值不值得呢?...
  8. JavaScript数组与字符串常碰到的问题
  9. ros项目实战——构建工业级机器臂
  10. 双稳态电路的两个稳定状态是什么_五十岁的夫妻,真正的生活状态是什么?两个女人说出大部分人心声...