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中String和StringBuffer的速度之争
Apr 01 Javascript
jQuery 表单验证扩展(四)
Oct 20 Javascript
jquery简单的拖动效果实现原理及示例
Jul 26 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
Nov 03 Javascript
禁用Tab键JS代码兼容Firefox和IE
Apr 18 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
Sep 09 Javascript
在JavaScript应用中使用RequireJS来实现延迟加载
Jul 01 Javascript
javascript实现类似java中getClass()得到对象类名的方法
Jul 27 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
Sep 14 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
Feb 09 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
Jul 31 Javascript
微信小程序之数据绑定原理解析
Aug 14 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/05/24 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
jQuery中对节点进行操作的相关介绍
2013/04/16 Javascript
jquery图片不完全按比例自动缩小的简单代码
2013/07/29 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
Nodejs异步回调之异常处理实例分析
2018/06/22 NodeJs
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
6行代码实现微信小程序页面返回顶部效果
2018/12/28 Javascript
vuejs简单验证码功能完整示例
2019/01/08 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
自定义Vue中的v-module双向绑定的实现
2019/04/17 Javascript
Vue的状态管理vuex使用方法详解
2020/02/05 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
动态创建类实例代码
2009/10/07 Python
Python导入txt数据到mysql的方法
2015/04/08 Python
Python发送form-data请求及拼接form-data内容的方法
2016/03/05 Python
Python学生信息管理系统修改版
2018/03/13 Python
关于python 跨域处理方式详解
2020/03/28 Python
python如何调用字典的key
2020/05/25 Python
一文详述 Python 中的 property 语法
2020/09/01 Python
python excel多行合并的方法
2020/12/09 Python
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
在浏览器端如何得到服务器端响应的XML数据
2012/11/24 面试题
有兼职工作经历的简历自我评价
2014/03/07 职场文书
C++程序员求职信范文
2014/04/14 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
人事任命通知书
2015/04/21 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
2015年酒店服务员工作总结
2015/05/18 职场文书
开学第一天的感想
2015/08/10 职场文书