1

我们正在运行 Outlook 加载项,看起来 Microsoft 已将 Office.js 的版本从更新16.0016.01:(outlook:{ios:"16.00",mac:"16.00",web:"16.01",win32:"16.02"}通过https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js

其中一项更改看起来是对postMessage确保子/父的域(包括子域)相同的抽象的附加验证。

因为我们在不同的子域上托管我们的加载项和中央身份验证服务器,因此,我们所有的 OAuth 流在 Outlook 网页版中都会中断。

outlook-web-16.01.js:18 Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://outlook.domain.com') does not match the recipient window's origin ('https://auth.domain.com')

桌面版 Outlook(MacOS 和 Windows)不受影响。

我们已经将清单文件中的域列入白名单:

<AppDomains>
  <AppDomain>https://outlook.domain.com</AppDomain>
  <AppDomain>https://outlook-staging.domain.com</AppDomain>
  <AppDomain>https://auth.domain.com</AppDomain>
</AppDomains>

是否可以手动指定每个平台中加载的 Office.js 版本,以便我们可以按照自己的节奏升级并避免像这样的破坏性更改?

4

1 回答 1

1

对于此特定错误,您需要将子域添加到清单中的 appdomain/appdomains 部分。看:

https://dev.office.com/reference/add-ins/manifest/appdomains https://dev.office.com/reference/add-ins/manifest/appdomain

主要版本更改,即 16.00 -> 16.01,一般无法指定,也不应回滚。如果主机(OWA 客户端或 Outlook)期待某个版本 (16.01) 强制它使用 16.00 将导致意外行为(很可能 apis 只是返回错误)。

如果您希望对我们对这些文件所做的更改更具弹性(即我们对 16.01 所做的更改),您可以将文件从 appsforoffice 中拉出并自行托管它们。但这不受支持/推荐。这意味着我们对这些文件所做的任何错误修复或改进都将被遗漏。

于 2017-07-14T17:36:34.620 回答