JS async await fetch 捕获后端500错误详细信息

客户端异步请求抛出的500友好错误信息,处理起来很困难,需要把后端代码逐个检查下。

若是抛出500错误详细信息,就可以快速把问题处理掉。

如果是响应的是文本,就用 response.text() 方法,JSON 就用 response.json() 方法。

javascript 复制代码
async function bigFileUpload_click(sef) {
	const chunk_size = 1024*1024; // 1MB per chunk
	const file = sef.files[0];
	const fileSize = file.size;
	const totalChunks = Math.ceil(fileSize/chunk_size); // 向上取整
	const progressBar = $$('#progressBar');
	
	console.log(  file.name );return;
	
	for (let chunkIndex = 0; chunkIndex < totalChunks; chunkIndex++) {
		const start = chunkIndex * chunk_size;
		const end = Math.min(fileSize, start+chunk_size);
		const chunk = file.slice(start, end);
		const formData = new FormData();
		formData.append('act', 'bigFileUpload_click');
		formData.append('file', chunk);
		formData.append('fileName', file.name);
		formData.append('chunkIndex', chunkIndex);
		formData.append('totalChunks', totalChunks);
		
		progressBar.innerHTML = Math.ceil(chunkIndex/fileSize*100);
 
		await fetch(location.pathname,{
			method: 'POST',
			body: formData
		})
			.then(response => {
				if (response.status !== 200) {
					console.log('response:', response, response.text());
				}
			})
			.catch(error => {
				console.error('Error:', error)
			});
		;
	}
	
	progressBar.innerHTML = '100%';
}
相关推荐
XiaoYu200212 分钟前
第3章 Nest.js拦截器
前端·ai编程·nestjs
天下皆白_唯我独黑14 分钟前
php -S 启动项目访问路由报错处理
开发语言·php
清水迎朝阳15 分钟前
Qt 小白成长系列 1-- 官方 文本搜索示例解析
开发语言·qt
Joe_Blue_0216 分钟前
Matlab入门案例介绍—常用的运算符及优先级
开发语言·数据结构·matlab·matlab基础入门案例介绍
千寻girling19 分钟前
面试官 : “ 说一下 Map 和 WeakMap 的区别 ? ”
前端·javascript·面试
降临-max21 分钟前
JavaWeb企业级开发---MySQL
java·开发语言·数据库·笔记·后端·mysql
一路往蓝-Anbo23 分钟前
C语言从句柄到对象 (八) —— 当对象会说话:观察者模式与事件链表
c语言·开发语言·数据结构·stm32·单片机·观察者模式·链表
2501_9240641123 分钟前
2025年主流Web自动化测试工具功能与适用场景对比
前端·测试工具·自动化
GIOTTO情26 分钟前
舆情监测核心模块实战:从基础采集到智能优化
开发语言·python
可触的未来,发芽的智生30 分钟前
一万个为什么:频率和相位
javascript·人工智能·python·程序人生·自然语言处理