惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Hackread – Cybersecurity News, Data Breaches, AI and More
U
Unit 42
Vercel News
Vercel News
Martin Fowler
Martin Fowler
云风的 BLOG
云风的 BLOG
爱范儿
爱范儿
MongoDB | Blog
MongoDB | Blog
J
Java Code Geeks
F
Fortinet All Blogs
MyScale Blog
MyScale Blog
C
Check Point Blog
N
Netflix TechBlog - Medium
Microsoft Azure Blog
Microsoft Azure Blog
aimingoo的专栏
aimingoo的专栏
博客园_首页
WordPress大学
WordPress大学
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
Last Week in AI
Last Week in AI
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
V
Visual Studio Blog
小众软件
小众软件

博客园 - Gu

上位机开发人员真的需要物理 PLC 或博途吗?我们仅仅需要一个模拟 S7 通讯的工具 检查采集程序心跳的程序挂了。看来得套娃,再来一个检测检测程序的程序 Web.INI 提示coreclr.dll 出错?栈溢出? .Net 6使用轻量级任务调度Coravel实践 Blazor 循环的迷思 Grafana 可视化图表 mysqldump 导出批量忽略某些表的bat脚本 cron表达式的讲解 若依 自定义注解@Log,实现aop java 处理日期时间有多个类,用哪个比较好 文件同步工具 西门子PLC Modus TCP通讯 thingsboard 接口 圆度和径向跳动,直线度的区别 安装thingsboard 3.7 dotNET_Reactor 混淆net程序时, 一些全局变量要加上volatile 修饰符, 不然优化到不会改变 Ant Design Blazor Table 组件的 自定义分页样式, 显示全部记录数,ShowTotal 安全可靠测评结果公告(2023年第1号) 2023-12-26 来源: 中国信息安全测评中心 Blazor 和Known 框架学习
vue前端项目,默认request 30秒超时,如何设置某个导出动作1...
Gu · 2025-04-28 · via 博客园 - Gu

通常项目中会创建一个Axios实例并设置默认超时(如30秒):

// utils/request.js

axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
// 创建axios实例
const service = axios.create({
// axios中请求配置有baseURL选项,表示请求URL公共部分
baseURL: process.env.VUE_APP_BASE_API,
// 默认30秒超时

timeout: 30000
})

 导出excel动作

    /** 导出按钮操作 */
    handleExport() {
      this.download('mes/rpDaily/export', {
        ...this.queryParams
      }, `rpDaily_${new Date().getTime()}.xlsx`)
    }

import {download} from '@/utils/request'

// 全局方法挂载
Vue.prototype.download = download

// 通用下载方法
export function download(url, params, filename) {
  downloadLoadingInstance = Loading.service({ text: "正在下载数据,请稍候", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", })
  return service.post(url, params, {
    transformRequest: [(params) => { return tansParams(params) }],
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    responseType: 'blob'
  }).then(async (data) => {
    const isLogin = await blobValidate(data);
    if (isLogin) {
      const blob = new Blob([data])
      saveAs(blob, filename)
    } else {
      const resText = await data.text();
      const rspObj = JSON.parse(resText);
      const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
      Message.error(errMsg);
    }
    downloadLoadingInstance.close();
  }).catch((r) => {
    console.error(r)
    Message.error('下载文件出现错误,请联系管理员!')
    downloadLoadingInstance.close();
  })
}