我有一个可以工作的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控制台云-我已经设置了以下内容:
我觉得我迷失在Google访问领域。任何帮助将不胜感激!
答案 0 :(得分:1)
感谢Tanaike在此问题上的启发。如上所述,CORB(跨源错误)很可能与javascript调用有关。
我更新了JavaScript:https://script.google.com/macros/s/#####/exec?method=populate_events&year=2018
并更新了Google脚本以使用参数而不会引发错误:
因此,似乎我一直都在遇到跨源错误,这是由于格式不正确的javascript调用和google脚本方面的错误所致,该错误返回了错误而不是格式正确的JSONP对象。
感谢您的帮助。 :)