新的Google脚本版本抛出javascript错误

时间:2018-09-03 23:44:49

标签: javascript google-apps-script

我有一个可以工作的Google Script-JSON-javascript网络应用程序,但是当我更改JSON输出,保存新的Google Script版本并发布为网络应用程序时,网页抛出了CORB错误。

返回GS中的一个版本,使其重新工作。为什么新的GS版本会导致错误。即使使用相同的代码,但在新版本中仍会引发错误。 GS版本缓存有问题吗?我该怎么做才能更新版本?

当前版本为工作页面:https://arcacademy.ca/arc-academy-calendar-2018-2019/

注意:您可以在控制台中看到正在发送的JSON文本。新代码具有相同的格式/结构,只是将颜色值从十六进制更改为1到10。

要尝试通过创建新的GS脚本来解决此问题,但收到相同的错误:

  

跨源读取阻止(CORB)阻止了跨源响应   https://script.google.com/macros/s/AKfycbyM51kxwQOYM3hRyrW7semhmUka2z2w-jU09KBPL38IxKapeQQ1/exec?callback=receivedCalendarEvents   MIME类型为text / html。看到   https://www.chromestatus.com/feature/5629709824032768了解更多   详细信息。

以下是无法正常工作的页面在控制台中引发以上错误:https://arcacademy.ca/clone-of-arc-academy-calendar-2018-2019/

部署有以下内容的Google Script网络应用:

  • 像我一样执行
  • 任何人,甚至匿名

Google脚本代码:

function doGet(e) {
  if (e.parameter.method=="populate_events") {
    var scriptProperties = PropertiesService.getScriptProperties();
    var calendarId = scriptProperties.getProperty('calendarId') || 'primary';
    var v = extractCalendarDateColors( calendarId, e.year );

    return ContentService.createTextOutput(e.parameter.callback + "(" + JSON.stringify(v) + ")")
    .setMimeType(ContentService.MimeType.JAVASCRIPT);
  }
}

工作页面的Javascript代码(错误页面唯一更改为src =):

<script>
calendarEvents = {};
function receivedCalendarEvents(jsonData) {
console.log('received',jsonData);
calendarEvents = JSON.parse(jsonData);
}
</script>
<script src="https://script.google.com/macros/s/AKfycbzMCDiTzxGx2cN5dtXqCG2gvxJ6FGZ_t6UuPiT-HyDesu2--EY/exec?callback=receivedCalendarEvents"></script>
<script>

Google控制台云-我已经设置了以下内容:

  • 已启用日历API
  • 添加了Apps脚本客户端ID

我觉得我迷失在Google访问领域。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

感谢Tanaike在此问题上的启发。如上所述,CORB(跨源错误)很可能与javascript调用有关。

我更新了JavaScript:https://script.google.com/macros/s/#####/exec?method=populate_events&year=2018

并更新了Google脚本以使用参数而不会引发错误:

  • e.parameter.method
  • e.parameter.year

因此,似乎我一直都在遇到跨源错误,这是由于格式不正确的javascript调用和google脚本方面的错误所致,该错误返回了错误而不是格式正确的JSONP对象。

感谢您的帮助。 :)