摘要:最近做項目遇到一款瀏覽器,由于緩存了請求,導致不管如何刷新,數(shù)據(jù)都不更新的問題。以下分享一下解決辦法解決思路就是給每一條請求增加一個的參數(shù),為時間戳但是我們又不想每次請求都加上,所以希望全局配置。
最近做項目遇到一款瀏覽器,由于緩存了get請求,導致不管如何刷新,數(shù)據(jù)都不更新的問題。
以下分享一下解決辦法:
解決思路就是給每一條get請求增加一個timestamp的參數(shù),value為時間戳
但是我們又不想每次請求都加上,所以希望全局配置。
解決方法在代碼最下方
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) { // 請求攔截 instance.interceptors.request.use(config => { this.queue[url] = true return config }, error => { return Promise.reject(error) }) // 響應攔截 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)出錯" }) } return { data, status } }, error => { this.destroy(url) return Promise.reject(error) }) } request(options) { const instance = axios.create() if (!options["method"]) { //沒有method的請求為get,判斷為get請求 if (!options["params"]) { //如果這個請求本身不帶參數(shù) Object.assign(options, { //給options這個對象添加一個params的參數(shù),屬性為timestamp,值為時間戳 params: { timestamp: new Date().getTime() } }) } else { Object.assign(options.params, { //如果get請求本身帶有參數(shù),給options.params 再添加一個key值timestamp,值為時間戳 timestamp: new Date().getTime() }) } } options = Object.assign(this.getInsideConfig(), options) this.interceptors(instance, options.url) return instance(options) } } export default HttpRequest //返回HttpRequest對象 由于時間倉促,這段代碼沒有做太多優(yōu)化,只給大家提供思路。
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/53828.html
摘要:最近做項目遇到一款瀏覽器,由于緩存了請求,導致不管如何刷新,數(shù)據(jù)都不更新的問題。以下分享一下解決辦法解決思路就是給每一條請求增加一個的參數(shù),為時間戳但是我們又不想每次請求都加上,所以希望全局配置。 最近做項目遇到一款瀏覽器,由于緩存了get請求,導致不管如何刷新,數(shù)據(jù)都不更新的問題。以下分享一下解決辦法:解決思路就是給每一條get請求增加一個timestamp的參數(shù),value為時間戳...
摘要:前言之前投遞了騰訊的實習生前端崗,一直沒有電話,查了下狀態(tài)說不合適,以為涼涼了,今天卻收到了電話,出乎意料然后就開始了一面,一開始面試官說時間不會太久,大概分鐘吧,結(jié)果整個過程也就持續(xù)了分鐘吧。 前言 之前投遞了騰訊的實習生前端崗,一直沒有電話,查了下狀態(tài)說不合適,以為涼涼了,今天卻收到了電話,出乎意料...然后就開始了一面,一開始面試官說時間不會太久,大概30分鐘吧,結(jié)果整個過程也就...
摘要:先安裝的詳細介紹以及用法就不多說了請移步下面是簡單的封裝一個,在此說明這個方法呢是不一定需要的,根據(jù)個人的項目需求吧,也可以直接返回,交給后面另行處理也行。或者根據(jù)后端返回的狀態(tài),在里面進行處理也行。先安裝 axios npm install axios axios的詳細介紹以及用法 就不多說了請 移步 github ??? https://github.com/axios/axios ...
閱讀 1943·2021-11-24 09:39
閱讀 3528·2021-09-28 09:36
閱讀 3299·2021-09-06 15:10
閱讀 3455·2019-08-30 15:44
閱讀 1162·2019-08-30 15:43
閱讀 1809·2019-08-30 14:20
閱讀 2721·2019-08-30 12:51
閱讀 2042·2019-08-30 11:04