UNPKG

@egova/components

Version:

components

83 lines (77 loc) 2.29 kB
import { commonSetting } from "../settings"; import axios, { AxiosRequestConfig } from "axios"; import Cookies from "js-cookie"; // Axios请求拦截器 axios.interceptors.request.use( (config: AxiosRequestConfig) => { let token = Cookies.get("access_token"); if ( token && config.url && ~config.url.search(/unity|security\/role|security\/user/g) ) { // 判断是否存在token,如果存在的话,则每个http header都加上token config.headers.Authorization = "Bearer " + token; } return config; }, error => { console.error(error); return Promise.reject(error); } ); /** * 业务服务基类。 * @abstract * @class * @version 1.0.0 */ export default abstract class ServiceBase { public authingServer = commonSetting.authingServer; protected url(url: string): string { return ( commonSetting.baseUrl.replace(/\/$/, "") + "/" + url.replace(/^\//, "") ); } /** * 把json对象转换成formData数据 * @param data json对象 */ protected toFormData(data: any): FormData { let fromData = new FormData(); if (data) { Object.keys(data).forEach(key => { // 忽略以“_”的参数 if (key.indexOf("_") !== 0) { fromData.append(key, data[key]); } }); } return fromData; } /** * 发送post请求 * @param url 请求地址 * @param data 发送的参数 */ protected _post<T>(url: string, data?: any): Promise<T> { return axios.post(this.url(url), data).then(res => res.data); } /** * 发送get请求 * @param url 请求地址 */ protected _get<T>(url: string): Promise<T> { return axios.get(this.url(url)).then(res => res.data); } /** * 发送put请求 * @param url 请求地址 * @param data 请求参数 */ protected _put<T>(url: string, data?: any): Promise<T> { return axios.put(this.url(url), data).then(res => res.data); } }