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

Google Apps Script执行完成但无查询结果问题求助

问题解决建议

你的前端页面调用Google Apps Script接口后仅返回“Script execution completed.”,无查询结果,核心原因是脚本未正确返回JSON格式数据,以下是具体排查和修复步骤:

1. 修正Google Apps Script的返回逻辑

Google Apps Script默认执行完成后会返回“Script execution completed.”文本,必须明确输出JSON格式数据:

  • 在脚本的doGet函数末尾,替换默认返回为:
    // 假设result是查询到的对象或null
    return ContentService.createTextOutput(JSON.stringify(result))
      .setMimeType(ContentService.MimeType.JSON);
    
  • 确保查询逻辑正确:根据传入的examCode参数筛选表格数据,比如匹配表头为code的列:
    function doGet(e) {
      var examCode = e.parameter.examCode;
      var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1'); // 替换为你的表名
      var data = sheet.getDataRange().getValues();
      var headers = data[0];
      var codeIndex = headers.indexOf('code');
      var result = null;
      
      // 遍历行查找匹配的code
      for(var i=1; i<data.length; i++){
        if(data[i][codeIndex] === examCode){
          result = {};
          // 将行数据转为键值对
          for(var j=0; j<headers.length; j++){
            result[headers[j]] = data[i][j];
          }
          break;
        }
      }
      
      return ContentService.createTextOutput(JSON.stringify(result))
        .setMimeType(ContentService.MimeType.JSON);
    }
    

2. 优化前端代码的判断逻辑

原代码中if (data)的判断不够准确,空对象{}会被判定为真值,导致错误显示内容,修改如下:

fetch(url)
  .then(response => {
    if (!response.ok) throw new Error('请求失败');
    return response.json();
  })
  .then(data => {
    var detailsDiv = document.getElementById('details');
    detailsDiv.innerHTML = '';

    if (data && Object.keys(data).length > 0) {
      for (var key in data) {
        detailsDiv.innerHTML += `<strong>${key}:</strong> ${data[key]}<br>`;
      }
    } else {
      detailsDiv.textContent = '未找到该考试代码对应的信息。';
    }
  })
  .catch(error => {
    console.error('Error:', error);
    document.getElementById('details').textContent = '查询出错,请稍后重试。';
  });

3. 检查脚本部署设置

  • 重新部署脚本时,将权限设置改为「Anyone, even anonymous」,否则前端匿名请求会被拒绝。
  • 确认部署的是最新版本的脚本,避免执行旧代码。

4. 调试方法

  • 在Google Apps Script编辑器中,使用Logger.log(examCode)、Logger.log(result)打印关键数据,运行测试后查看日志(点击「查看」→「日志」)。
  • 前端打开浏览器控制台(F12),切换到「Network」标签,查看请求的响应内容,确认返回的是JSON格式数据而非默认文本。

内容的提问来源于stack exchange,提问作者Satsang Pravrutti Amdavad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 17:42:45