这是我的APP脚本代码,通过该代码,我试图将一行添加到工作表中。它会写入数据,但总是返回err,从而触发.fail()
函数是JavaScript:
function doGet(e) {
try {
var ss = SpreadsheetApp.getActiveSpreadsheet();;
var sheet = ss.getSheets()[0];
var name = e.parameter.name;
var address = e.parameter.address;
var phone = e.parameter.phone;
var email = e.parameter.email;
var city = e.parameter.city;
var quantity = e.parameter.quantity;
var productTitleFinal = e.parameter.productTitleFinal;
var productPriceFinal = e.parameter.productPriceFinal;
var fullDate = e.parameter.fullDate;
var comment = e.parameter.comment;
var url = e.parameter.url;
var rowData = sheet.appendRow([fullDate, name, email, phone, address, city, productPriceFinal, comment, productTitleFinal, quantity, url]);
var result = "Insertion successful";
return result
}
catch (err) {
return err
}
}
这是JavaScript代码,可从中发送写入数据的请求
var script_url = "https://script.google.com/macros/s/AKfycbx5_btANVIwai5PJ1CT_VHocfcbIhy-_vViGSg6vzDfE_4hOFg4/exec";
var url = script_url+"?fullDate="+fullDate+"&name="+name+"&email="+email+"&phone="+phone+"&city="+city+"&address="+address+"&comment="+comment+"&quantity="+quantity+"&productTitleFinal="+productTitleFinal+"&productPriceFinal="+productPriceFinal+"&comment="+comment+"&url="+url;
var request = jQuery.ajax({
crossDomain: true,
url: url ,
method: "GET",
dataType: "jsonp",
})
.done(function(res){
console.log(res)
})
.fail(function(e){
console.log(e)
})
.always(function(e){
console.log(e)
});
此代码可能有什么问题?
答案 0 :(得分:0)
我认为您遇到此问题的原因是doGet()
始终不会返回状态200。为避免此问题,如何进行以下修改?
请按如下所示修改脚本。
return result
至:
return ContentService.createTextOutput(result); // Modified
var request = jQuery.ajax({
crossDomain: true,
url: url ,
method: "GET",
dataType: "jsonp",
})
至:
var request = jQuery.ajax({
crossDomain: true, // Also this might not be required.
url: url ,
method: "GET",
// dataType: "jsonp", // Modified
})
return err
的情况下,不会返回错误消息。因此,如果您想返回错误消息,请修改为ContentService.createTextOutput(err)
。但是在这种情况下,将返回状态码200。因此,如果要检索错误消息作为错误,则需要在done(function(res){})
函数中准备脚本。因为在Google Apps脚本的Web Apps中,无法使用自定义状态代码。如果我误解了您的问题,而这不是您想要的方向,我深表歉意。