【问题标题】:How do I Make Google Apps Script serve XML to IE 11?如何使 Google Apps 脚本向 IE 11 提供 XML?
【发布时间】:2021-05-02 01:24:08
【问题描述】:

我有一个附加到电子表格的谷歌应用脚​​本。它被部署为 Web 应用程序。访问时返回 XML。

function doGet()
{
  var xml = createXML_(getSheetData_())
  Logger.log("\n" + xml);
  xml = ContentService.createTextOutput(xml);
  xml.setMimeType(ContentService.MimeType.XML);
  return xml;
}

我在一个网页中有 javascript,它使用 GET 请求从中检索 XML,像往常一样使用 XMLHttpRequest()。然后它遍历 XML 并根据数据构建一个表。

在 Chrome 和 Firefox 中,这一切都可以完美运行。但是,在 IE11 中,它不起作用。

经过进一步检查(在 IE 的检查中),返回给 IE 的 XML 是:

<Permission Denied>

就是这样。

如何让我的谷歌应用脚​​本在 Internet Explorer 请求时返回 XML?

【问题讨论】:

  • 你有什么特别的原因要迎合 IE 吗?
  • 它是为客户的网站设计的,所以它应该适用于所有主流浏览器。它适用于 Chrome 和 Firefox,但不适用于 IE。

标签: javascript internet-explorer google-apps-script xmlhttprequest google-apps


【解决方案1】:

如果您的意思是作为 Web 应用程序部署在另一个域上的 Google 应用程序脚本,并且您的网页托管在另一个域上,您尝试使用 JS 从该域中检索 XML,那么 IE 可能会阻止您访问不同域的资源。

我建议您尝试转到Internet options-> Security tab-> Select the desired zone-> Custom level,然后启用杂项类别下的跨域访问数据源选项。

重新启动机器并再次尝试检查问题。

如果问题仍然存在,那么我建议您尝试使用示例代码提供详细步骤以重现问题,并尝试分享错误快照可能有助于更好地了解问题。

感谢您的理解。

【讨论】:

  • 我很确定这就是这里发生的事情。但是,这是为了客户的业务,所以我认为我不能告诉他告诉他的客户更改他们的 Internet Explorer 设置。我可能只好硬着头皮添加不同的方法将数据输出到 google app 脚本中,比如直接输出一个表格,看看能不能把它放在 iframe 中。
  • 您可以通知您的客户端使用此设置进行测试,以确认是否是跨域请求引起的问题。如果此设置解决了问题,那么您的客户端可以通过组策略配置此设置,以将其应用于受影响的计算机。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多