使用GET防止发送重复数据

时间:2014-07-22 12:13:46

标签: google-apps-script

我构建了一个自定义表单,使用GET方法通过简单的Google脚本将其所有数据发送到Google Spreadsheet。 提交表单后,我会显示一个感谢您页面,该页面托管在GS上并通过HtmlService调用。 此网页的网址包含表单的所有值,如果我刷新感谢页面,我会在电子表格中获得重复数据,这是一个灾难。

我尝试了不同的设置计时器的方法,在5秒后重定向到不同的页面但没有成功。有什么东西挡住了我的剧本。 (我知道它正在工作,因为我可以显示警告,但不会自动重定向页面。)

是否有任何选项可以阻止将重复数据发送到电子表格?我不在乎它是否设置了谢谢页面的超时(应该相对容易),或者为每次提交使用唯一令牌。

感谢。

3 个答案:

答案 0 :(得分:0)

这样的数据应该通过POST发送,而不是GET。

尝试在已发布的脚本中使用doPost(e)而不是doGet()并将数据发布到该脚本中。

答案 1 :(得分:0)

如果刷新"谢谢你"页面再次向您的电子表格发送数据,谢谢你

  

页面的网址包含表单的所有值

,然后你以某种方式结合了GET请求和Thank You页面的服务。这需要分开。您需要提供Thank You页面而不将表单的值放在URL中。即使感谢页面中没有任何数据,并且其中没有表格,如果URL正在触发另一个请求,那么数据将再次发送

答案 2 :(得分:0)

实际问题是你有一个html页面,通过让用户点击链接或重定向将数据提交给gas。相反,你需要使用ajax get来调用gas,而你的html(不是gas)会显示感谢页面。