【问题标题】:How to get wopi discovery in the host page如何在主机页面中获取 wopi 发现
【发布时间】:2020-01-08 17:39:31
【问题描述】:

我正在使用 WOPI 为 Web 进行 Office 集成,并尝试从发现中获取 WOPI 操作。

我知道可以从中获得发现的 dogfood/testing 端点。但由于跨域问题,我无法直接在我的网络应用程序中获取它,因为它位于不同的域中。

我是否应该将发现存储在 API 中并将其提供给网络应用程序?

【问题讨论】:

    标签: javascript java ms-wopi


    【解决方案1】:

    为读者解答。

    我正在与 Microsoft 高级项目经理核实,他确认 WOPI 发现是服务器-服务器的事情。我们需要在 API 端获取 WOPI 发现并将其保存在缓存中,直到证明密钥验证失败。

    【讨论】:

      【解决方案2】:

      我猜你在谈论这些two discovery files。似乎他们将Access-Control-Allow-Origin 标头设置为*,所以这不应该是问题。

      我很快尝试了这个,它似乎工作正常:

      fetch('https://ffc-onenote.officeapps.live.com/hosting/discovery')
        .then(response => response.text())
        .then(str => (new window.DOMParser()).parseFromString(str, "text/xml"))
        .then(data => console.log(data))
        .catch(function(error) {
          console.log(error);
        });
      

      你可以在这里运行它:https://jsfiddle.net/rockyintel/ycrw293n/13/

      也许还有一个问题,您的域是否已添加到WOPI domain allow list

      【讨论】:

      • 是的,你是对的,但是当我点击相同的 url 时,我得到“对来自原点的 'ffc-onenote.officeapps.live.com/hosting/discovery' 的 XMLHttpRequest 的访问 * 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:当请求的凭证模式为'include'时,响应中的'Access-Control-Allow-Origin'标头的值不能是通配符'*'。控制XMLHttpRequest发起的请求的凭证模式通过 withCredentials 属性"
      • 我收到了来自 MS 的电子邮件,告诉我我的域已添加
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      • 2017-10-26
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      相关资源
      最近更新 更多