You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Apps Script中第62行出现的illegal return statement错误

错误根因

你遇到的illegal return statement报错的核心原因是代码结构错误:
func == "Login对应的整段逻辑写在了Authentication函数的外部,属于全局作用域代码,JavaScript不允许在全局作用域直接使用return语句,这就是第62行报错的直接原因。

除此之外你的代码还存在多处可触发运行错误的问题:

  • 调用ss.deleteSheet()时没有传入要删除的临时表对象ts,执行会报错
  • getValues()方法返回的是二维数组,你直接用getPWD == password、getResult == ""这类比较逻辑永远无法得到预期结果
  • Create逻辑只在邮箱不存在的分支定义了返回值,邮箱已存在的场景没有返回值,会触发Apps Script运行错误

修复后完整代码

//**************************************************************************************
function doGet(e){
  return Authentication(e);
}

function doPost(e){
  return Authentication(e);
}

function Authentication(e){
  // Create逻辑
  if(e.parameter.func == "Create") {
    var ss = SpreadsheetApp.openById(e.parameter.ID);
    var sh = ss.getSheetByName(e.parameter.SH);

    var rg = sh.getName() + "!" + sh.getDataRange().getA1Notation();
    var email = e.parameter.email;
    var sql = ' "Select B where B=\''+email+'\' " ';
    var qry = ' =IFERROR(query(' + rg + ',' + sql + '), "")';

    var ts = ss.insertSheet();
    ts.getRange(1,1).setFormula(qry);
    var getResult = ts.getDataRange().getValues();
    ss.deleteSheet(ts);
    
    // 修正二维数组判断逻辑
    if (getResult[0][0] ==""){
      var data  = [e.parameter.fullname, e.parameter.email, e.parameter.password, e.parameter.phone];
      sh.appendRow(data);
      return ContentService.createTextOutput("SUCCESS");
    } else {
      // 补全邮箱已存在的返回值
      return ContentService.createTextOutput("EMAIL_EXIST");
    }
  } 

  // 把Login逻辑移到Authentication函数内部
  if(e.parameter.func == "Login") {
    var ss = SpreadsheetApp.openById(e.parameter.ID);
    var sh = ss.getSheetByName(e.parameter.SH);

    var email = e.parameter.email;
    var password = e.parameter.password;
    
    var rg = sh.getName() + "!" + sh.getDataRange().getA1Notation();
    var sql = ' "Select A,B,C where B=\''+email+'\' " ';
    var qry = ' =IFERROR(query(' + rg + ',' + sql + '), "")';

    var ts = ss.insertSheet();
    ts.getRange(1,1).setFormula(qry);
    var getResult = ts.getDataRange().getValues();

    // 修正二维数组取值
    var getPWD = ts.getRange(1,3).getValues()[0][0];
    var getFullName = ts.getRange(1,1).getValues()[0][0];
    // 补全deleteSheet参数
    ss.deleteSheet(ts);

    if(getResult[0][0]!=""){
      if(getPWD==password){
        return ContentService.createTextOutput(getFullName);
      } else{ 
        return ContentService.createTextOutput("ERPWD");
      }
    } else {
      return ContentService.createTextOutput("EMPTY");
    }
  }

  // 补全其他未知func场景的返回值
  return ContentService.createTextOutput("INVALID_FUNC");
}
// ********************************************************************************************************

内容的提问来源于stack exchange,提问作者NRG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 15:06:04