vue实现的请求服务器端API接口示例


Posted in Javascript onMay 25, 2019

本文实例讲述了vue实现的请求服务器端API接口。分享给大家供大家参考,具体如下:

import axios from 'axios'
import router from '@/router'
axios.defaults.timeout = 3000
axios.defaults.baseURL = ''
axios.interceptors.request.use(
 config => {
  // const token = getCookie('名称')
  config.data = config.data
  config.headers = {
   'Content-Type': 'application/json; charset=utf-8'
  }
  if (config.url === '/api/login/index') {
  } else {
   if (localStorage.getItem('Authorization')) {
    config.headers.Authorizatior = localStorage.getItem('Authorization')
   }
  }
  // if (token) {
  // config.params = {'token': token}
  // }
  return config
 },
 error => {
  return Promise.reject(error)
 }
)
axios.interceptors.response.use(
 response => {
  //返回错误跳转到首页
  if (response.data.code === 0) {
   router.push({
    path: '/',
    querry: {
     redirect: router.currentRoute.fullPath
    }
   })
  }
  return response
 },
 error => {
  if (error.response) {
   switch (error.response.status) {
    case 401:
     localStorage.removeItem('Authorization')
     router.push('/login')
   }
  }
  return Promise.reject(error)
 }
)
/**
 * 封装get方法
 * @param url
 * @param data
 * @returns {Promise}
 */
export function fetch (url, params = {}) {
 return new Promise((resolve, reject) => {
  axios.get(url, {
   params: params
  })
  .then(response => {
   resolve(response.data)
  })
  .catch(err => {
   reject(err)
  })
 })
}
/**
 * 封装post请求
 * @param url
 * @param data
 * @returns {Promise}
 */
export function post (url, data = {}) {
 return new Promise((resolve, reject) => {
  axios.post(url, data)
  .then(response => {
   resolve(response.data)
  }, err => {
   reject(err)
  })
 })
}
/**
 * 封装patch请求
 * @param url
 * @param data
 * @returns {Promise}
 */
export function patch (url, data = {}) {
 return new Promise((resolve, reject) => {
  axios.patch(url, data)
   .then(response => {
    resolve(response.data)
   }, err => {
    reject(err)
   })
 })
}
/**
 * 封装put请求
 * @param url
 * @param data
 * @returns {Promise}
 */
export function put (url, data = {}) {
 return new Promise((resolve, reject) => {
  axios.put(url, data)
   .then(response => {
    resolve(response.data)
   }, err => {
    reject(err)
   })
 })
}

main.js调用

import { fetch, post, patch, put } from '@/util/fetch'
Vue.prototype.get = fetch
Vue.prototype.post = post
Vue.prototype.patch = patch
Vue.prototype.put = put

视图页面使用 

export default {
 name: 'login',
 data () {
  return {
   mobile: '',
   password: ''
  }
 },
 components: {
  XInput,
  XButton,
  Group,
  Box
 },
 methods: {
  handleLogin () {
   let params = {}
   params.username = this.mobile
   params.password = this.password
   this.post('/api/driver/index', params).then((data) => {
    console.log(data)
   }).catch((error) => {
    console.log(error)
   })
  }
 }
}

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
用javascript实现的激活输入框后隐藏初始内容
Jun 29 Javascript
IE之动态添加DOM节点触发window.resize事件
Jul 27 Javascript
JS显示下拉列表框内全部元素的方法
Mar 31 Javascript
IE10中flexigrid无法显示数据的解决方法
Jul 26 Javascript
javascript实现拖放效果
Dec 16 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
Mar 08 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)
Dec 02 Javascript
利用node.js本地搭建HTTP服务器
Apr 19 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
Jun 26 Javascript
详解Node.js 中使用 ECDSA 签名遇到的坑
Nov 26 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
Mar 16 jQuery
Node4-5静态资源服务器实战以及优化压缩文件实例内容
Aug 29 Javascript
Vue Autocomplete 自动完成功能简单示例
May 25 #Javascript
泛谈JS逻辑判断选择器 || &&
May 24 #Javascript
了解JavaScript中的选择器
May 24 #Javascript
Javascript通过控制类名更改样式
May 24 #Javascript
redux.js详解及基本使用
May 24 #Javascript
javascript获取元素的计算样式
May 24 #Javascript
运用js实现图层拖拽的功能
May 24 #Javascript
You might like
PHP5 安装方法
2006/10/09 PHP
基于php 随机数的深入理解
2013/06/05 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
2016/10/25 PHP
PHP实现数据库的增删查改功能及完整代码
2018/04/18 PHP
php无限极分类实现方法分析
2019/07/04 PHP
xml 与javascript结合的问题解决方法
2007/03/24 Javascript
JavaScript 事件参考手册
2008/12/24 Javascript
jQuery+json实现的简易Ajax调用实例
2015/12/14 Javascript
JS利用cookies设置每隔24小时弹出框
2017/04/20 Javascript
原生js中ajax访问的实例详解
2017/09/19 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
如何检查一个对象是否为空
2019/04/11 Javascript
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
Django+Vue实现WebSocket连接的示例代码
2019/05/28 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
mpvue实现微信小程序快递单号查询代码
2020/04/03 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
[02:38]DOTA2亚洲邀请赛小组赛精彩集锦:Wings完美团击溃对手
2017/03/29 DOTA
Python的Django框架中TEMPLATES项的设置教程
2015/05/29 Python
python中常用的九种预处理方法分享
2016/09/11 Python
python学习入门细节知识点
2018/03/29 Python
利用python实现凯撒密码加解密功能
2020/03/31 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
Python手动或自动协程操作方法解析
2020/06/22 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
施华洛世奇水晶荷兰官方网站:SWAROVSKI荷兰
2017/05/12 全球购物
捷克浴室和厨房设备购物网站:SIKO
2018/08/11 全球购物
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
行政主管岗位职责
2013/11/18 职场文书
奥巴马胜选演讲稿
2014/05/15 职场文书
设备售后服务承诺书
2014/05/30 职场文书
团日活动总结报告
2014/06/25 职场文书
大学生社会实践活动总结
2014/07/03 职场文书
坎儿井导游词
2015/02/09 职场文书
Python 第三方库 openpyxl 的安装过程
2022/12/24 Python