热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vue封装cookie方法_vue接口封装(简单实现是否需要登录获取数据)

再次记录用了很久的一个vue接口封装方法(非原创)importaxiosfromaxios;varVUE_API_URL..pluginsindexconstinstanc

再次记录用了很久的一个vue接口封装方法(非原创)

import axios from "axios";

var VUE_API_URL = "../plugins/index"

const instance = axios.create({

baseURL: VUE_API_URL,

timeout: 10000

});

const defaultOpt = {login:false};

// 接收数据

const request = ["post", "put", "patch" , "get", "delete", "head"].reduce((request, method) => {

request[method] = (url, data = {}, options = {}) => {

return baseRequest(

Object.assign({ url, data, method }, defaultOpt , options)

);

};

return request;

}, {});

//处理请求

function baseRequest(options){

const headers = options.headers || {};

if(options.login == true){

headers["Authori-zation"] = getCOOKIE("token")

}

options.headers = headers;

return instance(options).then(res => {

const data = res.data || {};

//删除登录标识

delete options.login;

//请求失败

if (res.status !== 200)

return Promise.reject({ msg: "请求失败", res, data });

if(data.code === 200){

return Promise.resolve(data,res);

}else{

return Promise.reject(data,res);

}

});

}

function getCOOKIE(c_name) {

if (document.COOKIE.length>0)

{

var c_start=document.COOKIE.indexOf(c_name + "=")

if (c_start!=-1)

{

c_start=c_start + c_name.length+1

var c_end=document.COOKIE.indexOf(";",c_start)

if (c_end==-1) c_end=document.COOKIE.length

return unescape(document.COOKIE.substring(c_start,c_end))

}

}

return ""

};

export default request;

import request from "../plugins/request";

export function signIn(phone,code) {

return request.post("/user/login",{phone:phone,code:code},{login:false});

}



推荐阅读
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 小程序的授权和登陆
    小程序的授权和登陆 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 在尝试将 mysqldump 文件加载到新的 MySQL 服务器时,遇到因使用保留关键字 'table' 导致的语法错误。 ... [详细]
  • vue引入echarts地图的四种方式
    一、vue中引入echart1、安装echarts:npminstallecharts--save2、在main.js文件中引入echarts实例:  Vue.prototype.$echartsecharts3、在需要用到echart图形的vue文件中引入:   importechartsfrom"echarts";4、如果用到map(地图),还 ... [详细]
  • iOS snow animation
    CTSnowAnimationView.hCTMyCtripCreatedbyalexon1614.Copyright©2016年ctrip.Allrightsreserved.# ... [详细]
  • 事件是程序各部分之间的一种通信方式,也是异步编程的一种实现形式。本文将详细介绍EventTarget接口及其相关方法,以及如何使用监听函数处理事件。 ... [详细]
  • 本文将深入探讨 iOS 中的 Grand Central Dispatch (GCD),并介绍如何利用 GCD 进行高效多线程编程。如果你对线程的基本概念还不熟悉,建议先阅读相关基础资料。 ... [详细]
  • 本文详细介绍了 com.apollographql.apollo.api.internal.Optional 类中的 orNull() 方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Exce ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
author-avatar
黄秋华1219
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有