如何在Google Apps Script表单提交后重定向回自有网站?
解决GAS表单提交后跳转回原网站的简单方法
你的问题出在表单用POST方式提交时,触发的是GAS里的doPost方法,你加的doGet根本不会被调用,所以无效。下面给两种简单易懂的解决方法,适合HTML/CSS基础的你:
方法1:前端异步提交(推荐,页面不刷新)
不用修改GAS,只给页面加几行简单JS代码,提交时页面不会跳转,完成后自动返回原网站:
- 给你的表单加一个ID,比如:
<form id="contactForm"> <!-- 你的表单输入框、提交按钮 --> </form>
- 把表单原有的
action和method属性删掉(或者保留也没关系,JS会阻止默认跳转) - 在页面末尾添加这段JS代码(替换里面的两个地址):
<script> document.getElementById('contactForm').addEventListener('submit', function(e) { // 阻止表单默认跳转行为 e.preventDefault(); // 收集表单里的所有数据 const formData = new FormData(this); // 异步提交到你的GAS地址 fetch('你的GAS部署地址', { method: 'POST', body: formData }) .then(() => { // 提交成功的提示(可选,也可以删掉这行) alert('提交成功!'); // 跳回你的网站页面,比如联系页或首页 window.location.href = '你的网站返回地址'; }) .catch(() => { alert('提交失败,请重试'); }); }); </script>
方法2:修改GAS返回跳转页面(不用改前端)
直接修改GAS的doPost方法,让它提交完成后返回一个自动跳转的HTML页面:
把你原来doPost里的return ContentService...部分全部替换成下面的代码(替换返回地址):
// 提交成功时返回跳转页面 return HtmlService.createHtmlOutput(` <script> alert('提交成功!'); // 替换成你的网站返回地址 window.location.href = '你的网站返回地址'; </script> `);
同时把catch块里的返回也改成类似的:
return HtmlService.createHtmlOutput(` <script> alert('提交失败:${e.message}'); window.location.href = '你的网站返回地址'; </script> `);
内容的提问来源于stack exchange,提问作者Daniel Huddleston
相关产品推荐
相关产品推荐

