正如标题所说,我想知道是否可以使用 POST 方法将某种 JSON 发送到谷歌应用脚本。发送 JSON 后,它将由 google 脚本处理。
到现在为止,我设法使用带有 3 个输入的标准 html 表单发送了一个发布请求(我遵循了本指南: http: //mashe.hawksey.info/2011/10/google-spreadsheets-as-a-database-insert- with-apps-script-form-postget-submit-method/)。现在我想转移到一个将一些 json 发送到谷歌脚本的 ajax 调用,但我不知道如何..
使用这样的 ajax 调用:
$.ajax({
type: "POST",
url: url,
data: "someSortOfData",
success: function(data){alert("ok")},
error: function(message){alert("fail")}
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
其中“someSortOfData”是我发送的实际数据(我尝试使用 json、简单文本、html 等)。每次我运行脚本时,调用都会不断进入“错误”函数,我不知道为什么。
正如我之前所说,使用标准的 html 表单提交数据是可行的,所以我认为 URL 没问题。我认为问题出在我发送的数据上。也许,服务器端,谷歌脚本不期望有任何与文本不同的东西?
这就是脚本(服务器端)的样子
function doPost(e) {
var ss = SpreadsheetApp.openById(ScriptProperties.getProperty('active'));
var sheet = ss.getSheetByName("DATA");
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
var nextRow = sheet.getLastRow(); // get next row
var cell = sheet.getRange('a1');
var col = 0;
for (i in headers){
val = e.parameter[headers[i]];
cell.offset(nextRow, col).setValue(val);
col++;
}
//return sent data
var app = UiApp.createApplication();
var panel = app.createVerticalPanel();
for( p in e.parameters){
panel.add(app.createLabel(p +" "+e.parameters[p]));
}
app.add(panel);
return app;
}
我可能也需要编辑这段代码,但首先我试图将正确的 json 发送到服务器..
我做错了什么?