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

Google Apps Script报错SyntaxError: Unexpected token '<'求助

解决Google Apps Script中加载pako.js报错SyntaxError: Unexpected token '<'的问题

报错原因

你遇到的SyntaxError: Unexpected token '<'本质是UrlFetchApp.fetch('https://cdn.rawgit.com/nodeca/pako/master/dist/pako.js')获取到的内容不是预期的pako压缩库JS代码,而是HTML错误页面(比如服务终止提示、404页面)。eval解析HTML时遇到<符号,就会触发语法错误。

rawgit服务早已停止运营,之前能正常运行是因为缓存,现在缓存失效后,多数请求都会返回错误页面,导致偶尔能执行但无法规模化使用。

解决方案

方案一:替换为可靠的CDN地址

将加载pako的代码替换为使用jsDelivr的稳定CDN地址,确保每次都能获取到正确的JS代码:

eval(UrlFetchApp.fetch('https://cdn.jsdelivr.net/npm/pako@latest/dist/pako.js').getContentText());

方案二:内嵌pako代码(推荐,稳定性更高)

避免依赖外部网络请求,直接把pako代码嵌入到Google Apps Script项目中:

  1. 打开pako的官方分发地址,复制全部JS代码。
  2. 在Google Apps Script编辑器中,点击左侧「文件」→「新建」→「脚本文件」,命名为pako。
  3. 将复制的代码粘贴到这个新文件里。
  4. 删除原来那行eval(...)的代码,直接调用pako.inflate即可。

修改后的完整代码示例:

function mavenlink_raw(s1, options, report_id) {
  // PULL MAVENLINK REPORT
  var url = "https://api.mavenlink.com/api/v1/scheduled_jobs/insights_report_exports/"+report_id
  var response = UrlFetchApp.fetch(url, options);
  var dataSet = JSON.parse(response.getContentText());
  var gzip = dataSet.latest_success.url

  // CONVERT GZIP TO CSV
  var charData = UrlFetchApp.fetch(gzip).getContent();
  var binData = [];
  for (var i = 0; i < charData.length; i++) {
    binData.push(charData[i] < 0 ? charData[i] + 256 : charData[i]);
  }
  var data = pako.inflate(binData);
  var decoded = '';
  for (var i = 0; i < data.length; i++) {
    decoded += String.fromCharCode(data[i]);
  }
  var rows = Utilities.parseCsv(decoded);
  // 补充后续处理逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 21:20:27