我正在使用以下代码向Google应用程序脚本发布请求
var url ="MY WEBAPP EXEC"
function submitForm() {
var postRequest = {}
postRequest.name = $("#inputName").val();
postRequest.email = $("#inputEmail1").val();
postRequest.message = $("#inputMessage").val();
alert(JSON.stringify(postRequest)); // this alert
$.post(url, postRequest, function(data,status){
alert('success')
});
}
我很困惑,为什么帖子使用警报,但没有警报就无法工作。谢谢。
=== 好的,我想我的问题还不够清楚。
我有一个远程访问GAS的表格。我以为该URL暗示我正在远程访问GAS。目前,我正在本地主机和上面的JS上工作,如果存在Alert语句,则可以正常工作;如果没有Alert,则不执行任何操作。
我正在GSuite开发人员中心上查看执行列表,以查看请求是否失败或完成。我观察到警报语句是否在脚本中,执行状态已完成,但是如果警报语句不存在,则什么也不会发生。我假设如果没有警报,我的帖子脚本将不起作用。知道为什么吗?
答案 0 :(得分:1)
您尚未确切说明该函数的调用方式,但这可能是因为,如果这确实是“表单提交”操作,则提交表单的结果是“加载新页面”(可以与您所在的页面相同,默认情况下,表单标签中没有action
属性
由于要对表单提交执行AJAX,因此需要“防止”“默认”表单提交操作-可以实现,如下面的第二行和第三行所示
var url ="MY WEBAPP EXEC"
function submitForm(e) { // if this function is called using an event handler, it gets an event as the first and only argument
e.preventDefault(); // prevent the "default" form submit action
var postRequest = {}
postRequest.name = $("#inputName").val();
postRequest.email = $("#inputEmail1").val();
postRequest.message = $("#inputMessage").val();
alert(JSON.stringify(postRequest)); // this alert
$.post(url, postRequest, function(data,status){
alert('success')
});
}