您好我一直在关注本教程submit data from html forms to google sheets ajax代码如下:
var $form = $('form#test-form'),
url =
' https://script.google.com/macros/s/AKfycbwoNkRscUxkp7bOdHx3pPwj4D2doLATbgqEYKOoaIRFXCdRPlM/exec'
$('#submit-form').on('click', function(e) {
e.preventDefault();
var jqxhr = $.ajax({
url: url,
method: "GET",
dataType: "json",
data: $form.serializeObject()
}).success(
// do something
);
})
我遇到的问题是数据没有转移到谷歌电子表格。下面是html代码。
<form id="test-form">
<div>
<label>Field 1</label>
<input type="text" name="Groceries" placeholder="Field 1"/>
</div>
<div>
<label>Field 2</label>
<input type="text" name="Diary" placeholder="Field 2"/>
</div>
<div>
<label>Field 3</label>
<input type="text" name="Meat" placeholder="Field 3"/>
</div>
<div>
<label>Field 4</label>
<input type="text" name="Fish" placeholder="Field 4"/>
</div>
<div>
<button type="submit"id="submit-form">Submit</button>
</div>
答案 0 :(得分:1)
您是否在控制台中收到CORS错误?
已被CORS政策阻止:No&#39; Access-Control-Allow-Origin&#39;标头出现在请求的资源上。
如果是这样,我通过更改“json”中的数据类型来实现它。到了#jsonp&#39;。此外,AJAX请求的成功部分应该在对象内部。
$('#submit-form').on('click', function(e) {
e.preventDefault();
var jqxhr = $.ajax({
url: url,
method: "GET",
dataType: "jsonp",
data: $form.serializeObject(),
success: function() {
console.log('it worked')
}
})
})
答案 1 :(得分:0)
不幸的是,当我单击提交按钮时没有工作错误没有加载脚本在&#39; https://script.google.com/macros/s/AKfycbwoNkRscUxkp7bOdHx3 pPwj4D2doLATbgqEYKOo aIRFXCdRPlM / exec?cal lback = jQuery31106050 297388535439_1513880 634404&amp; ;杂货= 100安培;日记= 100安培;肉类= 100安培;鱼= 100安培; _ = 151388063 4405&#39;因为当&#39; X-Content-Type:nosniff&#39;时,不允许使用非脚本MIME类型。给出了
上述问题可以通过在doget function中添加以下代码来解决 -
function doGet(e) {
// do whatever this webapp is for
var result = doSomething(e);
// prepare the result
var s = JSON.stringify(result);
// publish result
return ContentService
.createTextOutput(result.params.callback ? result.params.callback + "(" + s + ")" : s )
.setMimeType(result.params.callback ? ContentService.MimeType.JAVASCRIPT : ContentService.MimeType.JSON);
}