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优缺点分析说明
Apr 10 Javascript
jquery实现奇偶行赋值不同css值
Feb 17 Javascript
from 表单提交返回值用post或者是get方法实现
Aug 21 Javascript
JavaScript创建对象的写法
Aug 29 Javascript
js与css实现弹出层覆盖整个页面的方法
Dec 13 Javascript
jQuery选择id属性带有点符号元素的方法
Mar 17 Javascript
基于jQuery实现搜索关键字自动匹配功能
Mar 26 Javascript
BootStrap中的table实现数据填充与分页应用小结
May 26 Javascript
jQuery实现微信长按识别二维码功能
Aug 26 Javascript
微信小程序 绘图之饼图实现
Oct 24 Javascript
PHP实现记录代码运行时间封装类实例教程
May 08 Javascript
浅谈Vue 数据响应式原理
May 07 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缓存类代码(附详细说明)
2011/06/09 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
用PHP读取超大文件的实例代码
2012/04/01 PHP
用 JSON 处理缓存
2007/04/27 Javascript
10个基于Jquery的幻灯片插件教程
2010/10/29 Javascript
精选的10款用于构建良好易用性网站的jQuery插件
2011/01/23 Javascript
jquery入门—访问DOM对象方法
2013/01/07 Javascript
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
js控制不同的时间段显示不同的css样式的实例代码
2013/11/04 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
js 获取元素下面所有li的两种方法
2014/04/14 Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
2015/02/05 Javascript
JavaScript获取当前网页最后修改时间的方法
2015/04/03 Javascript
JavaScript面向对象的实现方法小结
2015/04/14 Javascript
浅析JavaScript作用域链、执行上下文与闭包
2016/02/01 Javascript
javascript DIV实现跟随鼠标移动
2020/03/19 Javascript
js监听input输入框值的实时变化实例
2017/01/26 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
JavaScript中break、continue和return的用法区别实例分析
2020/03/02 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
python实现汉诺塔递归算法经典案例
2021/03/01 Python
Python使用matplotlib绘图无法显示中文问题的解决方法
2018/03/14 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
html5 div布局与table布局详解
2016/11/16 HTML / CSS
腾讯技术类校园招聘笔试试题
2014/05/06 面试题
写给爸爸的道歉信
2014/01/15 职场文书
小学趣味运动会加油稿
2014/09/25 职场文书
机关班子查摆问题及整改措施
2014/10/28 职场文书
幼儿园见习报告范文
2014/10/30 职场文书
2014年综合治理工作总结
2014/11/20 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
会议接待欢迎词范文
2015/01/26 职场文书