Office 2016 加载项与 http://localhost 通信

Car*_*les 5 office-js

我想构建一个可以离线使用的 Microsoft Office 2016 插件(至少在在线使用一次之后)。

我知道我们可以像普通浏览器一样缓存 HTML、js 等,我曾想过使用本地 HTTP 服务器(不随加载项分发),以便插件可以与其通信。但是做这样的事情:

var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", "http://localhost:8080", true);
xmlHttp.onreadystatechange = function(aEvt) {
  if (xmlHttp.status == 200) {
    console.log(xmlHttp.responseText);
  } else {
    console.log("Status:" + xmlHttp.statusText);
  }
};
xmlHttp.send();
Run Code Online (Sandbox Code Playgroud)

这失败了:

JavaScript 运行时错误:访问被拒绝。

如果我使用 HTTPS URL(到适当的服务器),它就可以工作。

我认为加载项只允许 HTTPS 而不允许 HTTP 请求?

什么是最好的通信方式,而不是通过 Internet 上的外部 HTTPS,Office 2016 加载项与机器中的另一个进程?

是否可以放宽清单上的安全性(我还没有找到方法)并允许 HTTP 请求localhost

Sla*_*nov 3

我认为加载项只允许 https 而不允许 http 请求?

正确的。根据Office 加载项 XML 清单上的文档,所有 URL 都必须受 SSL 保护 (HTTPS)

Office 2016 加载项与计算机中的另一个进程进行通信(不通过 Internet 上的 https 外部)的最佳方式是什么?

我可以通过两种方式查看...

  • 使用生成的自签名证书将适合您。
  • 创建适当的 https 服务以与加载项进行通信。从您的服务通过 http(不安全)与您喜欢的任何地方进行通信。我不建议使用这个解决方案,因为它根本不安全。

是否可以放松清单上的安全性(我还没有找到如何)并允许对本地主机的http请求?

不。