我試圖從Google Script獲得響應。但它給了我一個錯誤:腳本已完成,但返回值不是受支持的返回類型。腳本已完成,但返回的值不是受支持的返回類型
下面是一些腳本代碼:
function doGet(e) {
var result = 'ERROR PASSWORD';
if (Pass(e)) {
result = ParseRequest(e);
}
return ContentService.createTextOutput(result);
}
function ParseRequest(e) {
var result;
if (!CheckOrAddData(e)) {
result = 'FAILED';
} else {
result = 'ACTIVATED PROMOCODE';
}
return result;
}
function Pass(e) {
var ss = SpreadsheetApp.openById(e.parameters.ssid);
var sheet = ss.getSheetByName('PASS');
var sheetPass = sheet.getDataRange().getValue();
if (e.parameters.pass == sheetPass)
return true;
else
return false;
}
function CheckOrAddData(e) {
var promoCode = e.parameters.promocode;
var nickName = e.parameters.username;
var ss = SpreadsheetApp.openById(e.parameters.ssid);
var sheet = ss.getSheetByName('DATA');
if (nickName == "") {
return false;
}
var range = sheet.getRange('A1:B');
var rows = range.getNumRows();
var values = range.getDisplayValues();
for (var i = 0; i < rows; i++) {
if (values[i][0] == promoCode) {
if (values[i][1] == 'NO') {
var cell = range.getCell(i + 1, 2);
cell.setValue(nickName);
return true;
}
if (values[i][1] == nickName) {
return true;
}
}
}
return false;
}
這種反應,我從Hurl.it得到:
<!DOCTYPE html>
<html>
<head>
<link rel="shortcut icon" href="//ssl.gstatic.com/docs/script/images/favicon.ico">
<title>Error</title>
<style type="text/css">body {background-color: #fff; margin: 0; padding: 0;}.errorMessage {font-family: Arial,sans-serif; font-size: 12pt; font-weight: bold; line-height: 150%; padding-top: 25px;}</style>
</head>
<body>
<div>
<img src="//ssl.gstatic.com/docs/script/images/logo.png">
</div>
<center>The script completed but the returned value is not a supported return type.</center>
</body>
</html>
我沒有看到一個名爲函數'通行證()'。從這一行開始:'if(Pass(e))'如果存在服務器錯誤,您可能需要添加一個try/catch'塊來返回默認值。 –
編輯的GS代碼,仍然不在編輯器之外工作。 (在調試時工作正常)。返回默認值 - 不是很好的解決方案(所以它成功地編輯了電子表格,但沒有返回值 – huran438
嘗試排除newResults上的'getContent()' –