添加重定向后HTML表单无法提交,Google Apps Script写入失败求助
Google Apps Script 表单提交失败排查与修复
以下是你的代码存在的问题及对应修复方案:
模板文件名不匹配
你实际创建的成功/失败页面是success.html和fail.html,但代码里调用的模板是redirectSuccess和redirectError,文件名不一致会导致模板加载失败,直接触发catch块显示错误页面。修改代码中的文件名:// 成功页面模板替换 const template = HtmlService.createTemplateFromFile("success"); // 失败页面模板替换 const template = HtmlService.createTemplateFromFile("fail");未执行初始化函数
如果修改代码后没重新运行initialSetup函数,PropertiesService中不会存储当前表格的ID,调用SpreadsheetApp.openById时会因获取不到有效ID报错。手动运行一次initialSetup函数,确保表格ID已正确存储。锁获取逻辑缺失
当前代码未判断是否成功获取锁,若锁被其他请求占用,后续操作会直接失败。补充锁状态判断:const lock = LockService.getScriptLock(); if (!lock.tryLock(10000)) { const template = HtmlService.createTemplateFromFile("fail"); template.url = ScriptApp.getService().getUrl(); return template.evaluate(); }表单字段与表头匹配校验
检查HTML表单的name属性是否和Google Sheets表头完全一致(包括大小写、拼写),若不匹配,e.parameter[header]会返回undefined,可能导致数据写入失败。
内容的提问来源于stack exchange,提问作者Daniel Huddleston
相关产品推荐
相关产品推荐

