嵌入Google表格的Google表格不可点击-CORS冲突 [英] Google Forms embedded in Google Sheets Unclickable - CORS conflict

本文介绍了嵌入Google表格的Google表格不可点击-CORS冲突的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个电子表格,使用沙箱iframe模式从中显示了Google表单.但是,当点击嵌入式iframe时,Google表单不会响应点击.这似乎与CORS有关,因为如果启用我的CORS抑制器插件,它将变为可点击的.但是,我不需要在安装此功能的每台计算机上都安装CORS插件.我该如何解决所有访问电子表格的人的问题?

I have created a spreadsheet to which I display Google Forms from it using the sandbox, iframe mode. However, the google forms do not respond to clicks, when clicking on the embedded iframe. It seems to be something related to CORS because if I enable my CORS suppresser plugin it becomes clickable. However, I don't want to have to install a CORS plugin on every computer I install the feature. How do I solve this problem to everyone accessing the spreadsheet?

function panel(){
  
  var form = FormApp.openById('formId');
  var formUrl = form.getPublishedUrl();
  
  var response = UrlFetchApp.fetch(formUrl);
  var formHtml = response.getContentText();
  
  var htmlApp = HtmlService
      .createHtmlOutput(formHtml)
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .setTitle('Form')
      .setWidth(600) 
      .setHeight(800);

  SpreadsheetApp.getActiveSpreadsheet().show(htmlApp);
}

每当我单击下一步"时,我都会在Google Chrome浏览器的控制台上收到以下消息.

Whenever I click next I receive back the following messages on my console on Google Chrome Browser.

在' https://n-tnjo46dbraljse3yd32xl22ypwhdx36fhlaiora-0lu-script.googleusercontent.com "已被CORS政策阻止:请求的资源.

Access to XMLHttpRequest at 'https://www.gstatic.com//freebird//js/k=freebird.v.en.lcU4npEiYUw.O/rt=j/d=0/rs=AMjVe6hdoeb-_UmrKEHSn6K-MdbidWgqhw/m=syu,syv,syt,syw,syx,syy,syz,syj,sy10,sy1q,sy2n,sy31,KFVhZe' from origin 'https://n-tnjo46dbraljse3yd32xl22ypwhdx36fhlaiora-0lu-script.googleusercontent.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

推荐答案

问题:

  • 您正在下载html,并尝试在自己的iframe中提供它.这将被视为跨站点伪造,由于CORS,浏览器将不允许这样做.
    • Google表单允许其自身嵌入.
    function panel(){
    
      var form = FormApp.openById('formId');
      var formUrl = form.getPublishedUrl(); // Should end in `/viewform`; If not, modify it accordingly.
    
    //  var response = UrlFetchApp.fetch(formUrl);
    //  var formHtml = response.getContentText();
    
      var htmlApp = HtmlService
          .createHtmlOutput('<h1>MY FORM</h1>')
          .append('<iframe src ="' + formUrl + '?embedded=true" width="700" height="520" frameborder="0" marginheight="0" marginwidth="0">Loading...</iframe>')
          .setTitle('Form')
          .setWidth(750) 
          .setHeight(800);
    
      SpreadsheetApp.getActiveSpreadsheet().show(htmlApp);
    }
    

    这篇关于嵌入Google表格的Google表格不可点击-CORS冲突的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆