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 07 Javascript
javascript制作sql转换为stringBuffer的小工具
Apr 03 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
Jul 05 Javascript
jQuery与getJson结合的用法实例
Aug 07 Javascript
js自定义select下拉框美化特效
May 12 Javascript
JavaScript ES5标准中新增的Array方法
Jun 28 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
Jun 23 Javascript
JavaScript中数组常见操作技巧
Sep 01 Javascript
Bootstrap实现前端登录页面带验证码功能完整示例
Mar 26 Javascript
Vue 组件的挂载与父子组件的传值实例
Sep 02 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
Oct 26 Javascript
vscode中使用npm安装babel的方法
Aug 02 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
乱谈我对耳机、音箱的感受
2021/03/02 无线电
php UTF8 文件的签名问题
2009/10/30 PHP
php如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
jquery实现的下拉和收缩效果示例
2014/08/21 Javascript
在Ubuntu系统上安装Ghost博客平台的教程
2015/06/17 Javascript
javascript每日必学之循环
2016/02/19 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
NodeJs读取JSON文件格式化时的注意事项
2016/09/25 NodeJs
原生js实现网易轮播图效果
2020/04/10 Javascript
js 转义字符及URI编码详解
2017/02/28 Javascript
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
jQuery niceScroll滚动条错位问题的解决方法
2018/02/03 jQuery
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
Angular通过指令动态添加组件问题
2018/07/09 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
2018/10/12 Javascript
用Python脚本来删除指定容量以上的文件的教程
2015/05/04 Python
Python中统计函数运行耗时的方法
2015/05/05 Python
python类和函数中使用静态变量的方法
2015/05/09 Python
Python调用微信公众平台接口操作示例
2017/07/08 Python
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
python广度优先搜索得到两点间最短路径
2019/01/17 Python
python实现雪花飘落效果实例讲解
2019/06/18 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
css3 transform属性详解
2014/09/30 HTML / CSS
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
DC Shoes澳大利亚官方网上商店:购买DC鞋子
2019/10/25 全球购物
c语言常见笔试题总结
2016/09/05 面试题
电大物流学生的自我评价
2013/10/25 职场文书
蜜蜂引路教学反思
2014/02/04 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
2016年大学生党员公开承诺书
2016/03/24 职场文书
Pygame Time时间控制的具体使用详解
2021/11/17 Python