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 相关文章推荐
js实现的真正的iframe高度自适应(兼容IE,FF,Opera)
Mar 07 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
Nov 07 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
Feb 06 Javascript
jQuery鼠标经过方形图片切换成圆边效果代码分享
Aug 20 Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
Jan 04 Javascript
javascript计时器编写过程与实现方法
Feb 29 Javascript
JQuery给select添加/删除节点的实现代码
Apr 26 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
Sep 18 Javascript
vue2 设置router-view默认路径的实例
Sep 20 Javascript
vue实现固定位置显示功能
May 30 Javascript
vue实现配置全局访问路径头(axios)
Nov 01 Javascript
基于postman获取动态数据过程详解
Sep 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
163的邮件用phpmailer发送(实例详解)
2013/06/24 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
2016/05/27 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
使用Modello编写JavaScript类
2006/12/22 Javascript
jQuery语法总结和注意事项小结
2012/11/11 Javascript
javascript实现复制与粘贴操作实例
2014/10/16 Javascript
jQuery中click事件的定义和用法
2014/12/20 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
2015/10/10 Javascript
跟我学习javascript的函数调用和构造函数调用
2015/11/16 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
浅析为什么a="abc" 不等于 a=new String("abc")
2017/10/25 Javascript
Vue自定义全局Toast和Loading的实例详解
2019/04/18 Javascript
通过GASP让vue实现动态效果实例代码详解
2019/11/24 Javascript
基于原生js实现九宫格算法代码实例
2020/07/03 Javascript
谈一谈vue请求数据放在created好还是mounted里好
2020/07/27 Javascript
浅析Python中的序列化存储的方法
2015/04/28 Python
python cx_Oracle模块的安装和使用详细介绍
2017/02/13 Python
Python2中文处理纪要的实现方法
2018/03/10 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
Django框架模型简单介绍与使用分析
2019/07/18 Python
Django中URL的参数传递的实现
2019/08/04 Python
Pytorch实现神经网络的分类方式
2020/01/08 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
Python库skimage绘制二值图像代码实例
2020/04/10 Python
python中列表的含义及用法
2020/05/26 Python
解析HTML5的存储功能和web SQL的相关操作方法
2016/02/19 HTML / CSS
通过HTML5规范搞定i、em、b、strong元素的区别
2017/03/04 HTML / CSS
Parfumdreams芬兰:购买香水和化妆品
2021/02/13 全球购物
网络专业学生个人的自我评价
2013/12/16 职场文书
开办加工厂创业计划书
2014/01/03 职场文书
优秀毕业生自我鉴定
2014/02/11 职场文书
学校教师培训工作总结
2015/10/14 职场文书
python字符串常规操作大全
2021/05/02 Python
tomcat下部署jenkins的方法
2022/05/06 Servers