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 27 Javascript
js动态生成指定行数的表格
Jul 11 Javascript
window.onload和$(function(){})的区别介绍
Oct 30 Javascript
Javascript常用字符串判断函数代码分享
Dec 08 Javascript
javascript中Date format(js日期格式化)方法小结
Dec 17 Javascript
ES6新特征数字、数组、字符串
Oct 01 Javascript
使用Curl命令查看请求响应时间方法
Nov 04 Javascript
JS+CSS实现下拉刷新/上拉加载插件
Mar 31 Javascript
微信小程序 数据遍历的实现
Apr 05 Javascript
详解A标签中href=""的几种用法
Aug 20 Javascript
微信小程序实现漂亮的弹窗效果
May 26 Javascript
vue+element+Java实现批量删除功能
Apr 08 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执行速度全攻略(上)
2006/10/09 PHP
常见的PHP五种设计模式小结
2011/03/23 PHP
PHP求小于1000的所有水仙花数的代码
2012/01/10 PHP
PHP图像处理之imagecreate、imagedestroy函数介绍
2014/11/19 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
php微信开发接入
2016/08/27 PHP
PHP一致性hash分布式算法封装类定义与用法示例
2018/08/04 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
jQuery 1.5最新版本的改进细节分析
2011/01/19 Javascript
5个javascript的数字格式化函数分享
2011/12/07 Javascript
判断输入的字符串是否是日期格式的简单方法
2016/07/11 Javascript
用js读写cookie的简单方法(推荐)
2016/08/08 Javascript
移动端js图片查看器
2016/11/17 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
2017/06/15 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
JS Ajax请求会话过期处理问题解决方法分析
2019/11/16 Javascript
Vue实现摇一摇功能(兼容ios13.3以上)
2021/01/26 Vue.js
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
Python heapq使用详解及实例代码
2017/01/25 Python
用tensorflow搭建CNN的方法
2018/03/05 Python
python提取具有某种特定字符串的行数据方法
2018/12/11 Python
Pytorch十九种损失函数的使用详解
2020/04/29 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
美国珠宝网上商店:Jeulia
2016/09/01 全球购物
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
实习鉴定评语
2014/01/19 职场文书
《威尼斯的小艇》教学反思
2014/02/17 职场文书
求职信范文大全
2014/05/26 职场文书
小学向国旗敬礼活动方案
2014/09/27 职场文书
2014年建筑工程工作总结
2014/12/03 职场文书
政工师工作总结2015
2015/05/26 职场文书
企业宣传语大全
2015/07/13 职场文书
2015初中教导处工作总结
2015/07/21 职场文书