摘要:最近做項(xiàng)目遇到一款瀏覽器,由于緩存了請(qǐng)求,導(dǎo)致不管如何刷新,數(shù)據(jù)都不更新的問題。以下分享一下解決辦法解決思路就是給每一條請(qǐng)求增加一個(gè)的參數(shù),為時(shí)間戳但是我們又不想每次請(qǐng)求都加上,所以希望全局配置。
最近做項(xiàng)目遇到一款瀏覽器,由于緩存了get請(qǐng)求,導(dǎo)致不管如何刷新,數(shù)據(jù)都不更新的問題。
以下分享一下解決辦法:
解決思路就是給每一條get請(qǐng)求增加一個(gè)timestamp的參數(shù),value為時(shí)間戳
但是我們又不想每次請(qǐng)求都加上,所以希望全局配置。
解決方法在代碼最下方
import axios from "axios" // import { Spin } from "iview" import { getToken } from "@/libs/util" import Vue from "vue" const vueInstance = new Vue() class HttpRequest { constructor(baseUrl = baseURL) { this.baseUrl = baseUrl this.queue = { } } getInsideConfig() { const config = { baseURL: this.baseUrl, timeout: 60000, headers: { Authorization: getToken() || "", post: { "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8" } } } return config } destroy(url) { delete this.queue[url] } interceptors(instance, url) { // 請(qǐng)求攔截 instance.interceptors.request.use(config => { this.queue[url] = true return config }, error => { return Promise.reject(error) }) // 響應(yīng)攔截 instance.interceptors.response.use(res => { this.destroy(url) const { data, status } = res if (data.code && data.code !== 200) { vueInstance.$Modal.error({ title: data.code, content: data.message || data.error || "系統(tǒng)出錯(cuò)" }) } return { data, status } }, error => { this.destroy(url) return Promise.reject(error) }) } request(options) { const instance = axios.create() if (!options["method"]) { //沒有method的請(qǐng)求為get,判斷為get請(qǐng)求 if (!options["params"]) { //如果這個(gè)請(qǐng)求本身不帶參數(shù) Object.assign(options, { //給options這個(gè)對(duì)象添加一個(gè)params的參數(shù),屬性為timestamp,值為時(shí)間戳 params: { timestamp: new Date().getTime() } }) } else { Object.assign(options.params, { //如果get請(qǐng)求本身帶有參數(shù),給options.params 再添加一個(gè)key值timestamp,值為時(shí)間戳 timestamp: new Date().getTime() }) } } options = Object.assign(this.getInsideConfig(), options) this.interceptors(instance, options.url) return instance(options) } } export default HttpRequest //返回HttpRequest對(duì)象 由于時(shí)間倉促,這段代碼沒有做太多優(yōu)化,只給大家提供思路。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/109016.html
摘要:最近做項(xiàng)目遇到一款瀏覽器,由于緩存了請(qǐng)求,導(dǎo)致不管如何刷新,數(shù)據(jù)都不更新的問題。以下分享一下解決辦法解決思路就是給每一條請(qǐng)求增加一個(gè)的參數(shù),為時(shí)間戳但是我們又不想每次請(qǐng)求都加上,所以希望全局配置。 最近做項(xiàng)目遇到一款瀏覽器,由于緩存了get請(qǐng)求,導(dǎo)致不管如何刷新,數(shù)據(jù)都不更新的問題。以下分享一下解決辦法:解決思路就是給每一條get請(qǐng)求增加一個(gè)timestamp的參數(shù),value為時(shí)間戳...
摘要:前言之前投遞了騰訊的實(shí)習(xí)生前端崗,一直沒有電話,查了下狀態(tài)說不合適,以為涼涼了,今天卻收到了電話,出乎意料然后就開始了一面,一開始面試官說時(shí)間不會(huì)太久,大概分鐘吧,結(jié)果整個(gè)過程也就持續(xù)了分鐘吧。 前言 之前投遞了騰訊的實(shí)習(xí)生前端崗,一直沒有電話,查了下狀態(tài)說不合適,以為涼涼了,今天卻收到了電話,出乎意料...然后就開始了一面,一開始面試官說時(shí)間不會(huì)太久,大概30分鐘吧,結(jié)果整個(gè)過程也就...
摘要:先安裝的詳細(xì)介紹以及用法就不多說了請(qǐng)移步下面是簡(jiǎn)單的封裝一個(gè),在此說明這個(gè)方法呢是不一定需要的,根據(jù)個(gè)人的項(xiàng)目需求吧,也可以直接返回,交給后面另行處理也行。或者根據(jù)后端返回的狀態(tài),在里面進(jìn)行處理也行。先安裝 axios npm install axios axios的詳細(xì)介紹以及用法 就不多說了請(qǐng) 移步 github ??? https://github.com/axios/axios ...
摘要:事件模型事件捕獲階段。事件到達(dá)目標(biāo)元素觸發(fā)目標(biāo)元素的監(jiān)聽函數(shù)。的狀態(tài)值與狀態(tài)碼的狀態(tài)值未初始化還沒有調(diào)用方法。載入完成已經(jīng)執(zhí)行完成,已經(jīng)接收到全部的響應(yīng)內(nèi)容。 前言 總括: 包含這三個(gè)月來碰到的一些覺得比較好的面試題,三個(gè)月沒怎么寫博客著實(shí)有些手癢,哈哈哈。7000余字,不成敬意2333 原文地址:我的前端進(jìn)階之路 知乎專欄&&簡(jiǎn)書專題:前端進(jìn)擊者(知乎)&&前端進(jìn)擊者(簡(jiǎn)書) 博主...
閱讀 2155·2021-11-12 10:36
閱讀 2147·2021-09-03 10:41
閱讀 2761·2021-08-19 10:57
閱讀 1230·2021-08-17 10:14
閱讀 1487·2019-08-30 15:53
閱讀 1210·2019-08-30 15:43
閱讀 975·2019-08-30 13:16
閱讀 2983·2019-08-29 16:56