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写一个鼠标拖动效果实现原理与代码
Dec 24 Javascript
顶部缓冲下拉菜单导航特效的JS代码
Aug 27 Javascript
jQuery中contents()方法用法实例
Jan 08 Javascript
jquery制作属于自己的select自定义样式
Nov 23 Javascript
JavaScript实现时间倒计时跳转(推荐)
Jun 28 Javascript
js控住DOM实现发布微博效果
Aug 30 Javascript
thinkjs之页面跳转同步异步操作
Feb 05 Javascript
浅谈Vue.nextTick 的实现方法
Oct 25 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
Mar 17 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
Nov 30 Javascript
javascript实现计算器功能
Mar 30 Javascript
antd多选下拉框一行展示的实现方式
Oct 31 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 解决session死锁的方法
2013/06/20 PHP
PHP中的output_buffering详细介绍
2014/09/27 PHP
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
2010/01/15 Javascript
return false,对阻止事件默认动作的一些测试代码
2010/11/17 Javascript
仅IE不支持setTimeout/setInterval函数的第三个以上参数
2011/05/25 Javascript
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
基于OL2实现百度地图ABCD marker的效果
2015/10/01 Javascript
JS实现的简洁二级导航菜单雏形效果
2015/10/13 Javascript
xcode中获取js文件的路径方法(推荐)
2016/11/05 Javascript
js字符串与Unicode编码互相转换
2017/05/17 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
echarts实现折线图的拖拽效果
2019/12/19 Javascript
[02:44]2014DOTA2 国际邀请赛中国区预选赛 大神红毯秀
2014/05/25 DOTA
python抓取百度首页的方法
2015/05/19 Python
理解Python中的With语句
2016/03/18 Python
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
2019/08/09 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
python 两个数据库postgresql对比
2019/10/21 Python
什么是Python包的循环导入
2020/09/08 Python
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
美国在线打印网站:Overnight Prints
2018/10/11 全球购物
获取邓白氏信用报告:Dun & Bradstreet
2019/01/22 全球购物
如何将字串String转换成整数int
2015/02/21 面试题
研究生自荐信
2013/10/09 职场文书
石油大学毕业生自荐信
2014/01/28 职场文书
收银员岗位职责
2014/02/07 职场文书
世界遗产的导游词
2015/02/13 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
优秀的商业计划书,让融资一步到位
2019/05/07 职场文书
Python的flask接收前台的ajax的post数据和get数据的方法
2021/04/12 Python
vue如何使用模拟的json数据查看效果
2022/03/31 Vue.js