Inertia useForm.js提交时onProgress执行但console.log无输出求解答
Inertia.post onProgress回调console.log无输出的排查方案
1. 先检查浏览器控制台过滤设置
浏览器控制台默认可能过滤普通log,别白忙活:
- 打开开发者工具的Console面板,把过滤选项切到All,别只盯着Errors或Warnings
- 实在不行换
console.warn("onProgress")或者console.debug()试试,这类输出不容易被过滤
2. 排查回调内的代码阻塞问题
你代码里onProgress回调中调用了openGeneratingFileDialog(),说不定是这个方法出错导致log被吞:
- 先把
openGeneratingFileDialog()注释掉,只保留console.log("onProgress"),看log能不能正常输出 - 如果注释后log能显示,就去排查
openGeneratingFileDialog()的代码,比如是不是DOM元素找不到、变量未定义之类的报错,修复这个方法的问题即可
3. 确认Inertia版本与响应类型
- 老版本Inertia对onProgress的支持可能有缺陷,试试升级到最新稳定版
- onProgress仅在服务器返回流式响应时持续触发,如果服务器是一次性返回结果,onProgress只会执行一次,要是后续代码报错,log就会被掩盖
4. 顺便修正代码里的拼写错误
你onError回调里写的是opneFailDialog(),多打了一个字母n,应该是openFailDialog()——这个虽然不影响onProgress的log,但会导致错误回调无法正常执行,顺手改了吧
调试用简化代码
先跑这个简化版确认log是否正常:
Inertia.post('/generateFile', form, { onProgress: () => { console.log("onProgress触发"); // openGeneratingFileDialog(); 先注释掉 }, onSuccess: () => { console.log("onSuccess触发"); openSuccessDialog(); }, onError: () => { console.log("onError触发"); openFailDialog(); // 修正拼写错误 }, })
内容的提问来源于stack exchange,提问作者Manson
相关产品推荐
相关产品推荐

