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 相关文章推荐
jQuery学习笔记之基础中的基础
Jan 19 Javascript
js改变embed标签src值的方法
Apr 10 Javascript
Angular.js回顾ng-app和ng-model使用技巧
Apr 26 Javascript
Bootstrap轮播插件简单使用方法介绍
Jun 21 Javascript
AngularJS基础 ng-focus 指令简单示例
Aug 01 Javascript
详解JavaScript中this的指向问题
Jan 20 Javascript
Vue.js组件间的循环引用方法示例
Dec 27 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
Nov 02 Javascript
基于iview的router常用控制方式
May 30 Javascript
layui实现数据表格点击搜索功能
Mar 26 Javascript
微信小程序实现点击页面出现文字
Sep 21 Javascript
ES6 十大特性简介
Dec 09 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
PHP实现股票趋势图和柱形图
2015/02/07 PHP
PHP使用逆波兰式计算工资的方法
2015/07/29 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
PHP设计模式之状态模式定义与用法详解
2018/04/02 PHP
JavaScript Event学习第八章 事件的顺序
2010/02/07 Javascript
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
一个可拖拽列宽表格实例演示
2012/11/26 Javascript
jQuery之字体大小的设置方法
2014/02/27 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
2016/01/18 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
2016/06/14 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
详解vue 数据传递的方法
2018/04/19 Javascript
react配合antd组件实现的管理系统示例代码
2018/04/24 Javascript
详解Angular5路由传值方式及其相关问题
2018/04/28 Javascript
[53:15]Newbee vs Pain 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python实现线程池的方法
2015/06/30 Python
简单讲解Python编程中namedtuple类的用法
2016/06/21 Python
Python 带有参数的装饰器实例代码详解
2018/12/06 Python
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
详解Python读取yaml文件多层菜单
2019/03/23 Python
Python+Redis实现布隆过滤器
2019/12/08 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
python中的错误如何查看
2020/07/08 Python
Python批量删除mysql中千万级大量数据的脚本分享
2020/12/03 Python
详解CSS3 rem(设置字体大小) 教程
2017/11/21 HTML / CSS
canvas学习总结三之绘制路径-线段
2019/01/31 HTML / CSS
教学大赛获奖感言
2014/01/15 职场文书
四年大学生活的自我评价范文
2014/02/07 职场文书
会议主持人开场白台词
2015/05/28 职场文书
任长霞观后感
2015/06/16 职场文书
导游词之桂林
2019/08/20 职场文书
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js
java代码实现空间切割
2022/01/18 Java/Android