封装Get和Post请求
import axios from 'axios'; import qs from 'qs'; import { VALID_LOGIN } from '../config/url' import context from '../main.js' import router from '../router' axios.defaults.timeout = 20000; axios.defaults.baseURL = ''; axios.defaults.withCredentials = true; //http request 拦截器 // axios.interceptors.request.use( // config => { // // const token = getCookie('名称');注意使用的时候需要引入cookie方法,推荐js-cookie // // config.data = JSON.stringify(config.data); // // config.data = qs.stringify(config.data) // config.headers = { // // "Content-Type":"application/json;charset=utf-8", // "Content-Type":"application/x-www-form-urlencoded; charset=UTF-8", // // } // // if(token){ // // config.params = {'token':token} // } // return config; // }, // error => { // return Promise.reject(err); // } // ); let errorFlags = true; //http response 拦截器 axios.interceptors.response.use( response => { // if(response.data.errCode == 2){ // router.push({ // path:"/login", // querry:{redirect:router.currentRoute.fullPath}//从哪个页面跳转 // }) // } return response; }, error => { let status = error.response.status if (status == 403 || status == 401) { if (errorFlag) { post(VALID_LOGIN) .then(data => { if (data.status == 1 || data.status == '1') { context.$message({ type: 'info', message: '您没有当前菜单的访问权限,请联系管理员!' }); } else if (data.status == -1 || data.status == '-1') { context.$message({ type: 'error', message: '您已掉线,请先登录!' }); localStorage.clear(); setTimeout(function () { selectPlate() router.push('/login') }, 2000); } }) .catch(err => { console.log(err) context.$message({ type: 'error', message: err.response.data.msg }); }) errorFlags = false } } return Promise.reject(error) } ) var errorFlag = true; //没有权限时返回登陆页面 $(document).ajaxComplete(function (evt, req, settings) { if (null != req && req != '' && req != undefined) { if (req.status == 403 || req.status == 401) { if (errorFlag = true) { post(VALID_LOGIN) .then(data => { if (data.status == 1 || data.status == '1') { context.$message({ type: 'info', message: '您没有当前菜单的访问权限,请联系管理员!' }); } else if (data.status == -1 || data.status == '-1') { context.$message({ type: 'error', message: '您已掉线,请先登录!' }); localStorage.clear(); setTimeout(function () { selectPlate() router.push('/login') }, 2000); } }) .catch(err => { console.log(err) context.$message({ type: 'error', message: err.response.data.msg }); }) errorFlag = false; } else { } } } }); //退出到首页 function selectPlate() { let a = document.createElement('a') a.href = location.protocol + '//' + location.host // a.click() window.location.href = location.protocol + '//' + location.host; const dom = window.parent.document.getElementsByClassName("menuContainer"); const dom1 = window.parent.document.getElementsByClassName("topContainer"); const dom2 = window.parent.document.getElementsByClassName("tabsBox"); $(dom).css("display", "none"); $(dom1).css("display", "none"); $(dom2).css("display", "none"); } /** * 封装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, qs.stringify(data), { headers: { "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" } } ) .then(response => { resolve(response.data); }, err => { reject(err) }) }) } /** * 同步 * @param {}} url * @param {*} data */ export async function $postSync(url, data = {}) { try { let res = await axios.post(url, qs.stringify(data), { headers: { "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" } }); console.log('$postAsync 服务端返回的结果是', res); return Promise.resolve(res); } catch (err) { console.log('异常', err) } } export async function $getSync(url, data = {}) { try { let res = await axios.get(url, { params: data }); console.log('$getAsync 服务端返回的结果是', res); return Promise.resolve(res); } catch (err) { console.log('异常', err) } } /** * 封装post请求 json格式 * @param url * @param data * @returns {Promise} */ export function postjson(url, data = {}) { return new Promise((resolve, reject) => { axios.post(url, JSON.stringify(data), { headers: { "Content-Type": "application/json;charset=utf-8" } }) .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) }) }) } // 韩新玉 // 封装postToken请求 export function postToken(url, data = {}) { let token = document.cookie.split('=')[1] return new Promise((resolve, reject) => { axios.post(url, qs.stringify(data),{ headers: { "Content-Type": "application/x-www-form-urlencoded", 'TowattToken': token } }) .then(response => { resolve(response.data); }, err => { reject(err) }) }) } // 封装postTokenJson请求 export function postTokenJson(url, data = {}) { let token = document.cookie.split('=')[1] return new Promise((resolve, reject) => { axios.post(url, JSON.stringify(data),{ headers: { "Content-Type": "application/json;charset=utf-8", 'TowattToken': token } }) .then(response => { resolve(response.data); }, err => { reject(err) }) }) }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了