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 相关文章推荐
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
Feb 03 Javascript
如何制作浮动广告 JavaScript制作浮动广告代码
Dec 30 Javascript
封装了一个支持匿名函数的Javascript事件监听器
Jun 05 Javascript
jQuery对象的selector属性用法实例
Dec 27 Javascript
谈谈我对JavaScript DOM事件的理解
Dec 18 Javascript
jQuery实现图片轮播效果代码
Sep 27 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
Mar 13 Javascript
基于rem的移动端响应式适配方案(详解)
Jul 07 Javascript
使用vuepress搭建静态博客的示例代码
Feb 14 Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
Jul 29 Javascript
ant design vue中日期选择框混合时间选择器的用法说明
Oct 27 Javascript
jQuery+ajax实现文件上传功能
Dec 22 jQuery
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无限极分类的案例教程
2016/05/09 PHP
Laravel框架源码解析之模型Model原理与用法解析
2020/05/14 PHP
jQuery UI 应用不同Theme的办法
2010/09/12 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
JS实现灵巧的下拉导航效果代码
2015/08/25 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
js实现文字垂直滚动和鼠标悬停效果
2015/12/31 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
使用 vue-i18n 切换中英文效果
2018/05/23 Javascript
JS数组实现分类统计实例代码
2018/09/30 Javascript
ES6中字符串的使用方法扩展
2019/06/04 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
vue路由传参三种基本方式详解
2019/12/09 Javascript
js 图片懒加载的实现
2020/10/21 Javascript
原生js实现放大镜组件
2021/01/22 Javascript
[01:45]DOTA2众星出演!DSPL刀塔次级职业联赛宣传片
2014/11/21 DOTA
python 实现归并排序算法
2012/06/05 Python
python删除文件示例分享
2014/01/28 Python
详解Python使用tensorflow入门指南
2018/02/09 Python
unittest+coverage单元测试代码覆盖操作实例详解
2018/04/04 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
2019/06/19 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
Python类如何定义私有变量
2020/02/03 Python
python 6行代码制作月历生成器
2020/09/18 Python
html5录音功能实战示例
2019/03/25 HTML / CSS
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
PHP经典面试题
2016/09/03 面试题
中层干部竞争上岗演讲稿
2014/01/13 职场文书
高中毕业自我评价
2014/02/08 职场文书
期末学生评语大全
2014/04/24 职场文书
大二学习计划书范文
2014/04/27 职场文书
趣味运动会新闻稿
2015/07/17 职场文书
MySQL8.0的WITH查询详情
2021/08/30 MySQL