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

   日期:2020-10-29     浏览:283    评论:0    
核心提示:再次记录用了很久的一个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};

再次记录用了很久的一个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});
}

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服