【发布时间】:2019-05-25 14:05:54
【问题描述】:
以下是工作 MS Outlook Web 插件文件的开头。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<title></title>
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js" type="text/javascript"></script>
<link rel="stylesheet" href="https://appsforoffice.microsoft.com/fabric/1.0/fabric.min.css" />
<link rel="stylesheet" href="https://appsforoffice.microsoft.com/fabric/1.0/fabric.components.min.css" />
<script src="../../Assets/Scripts/jquery.fabric.js" type="text/javascript"></script>
<link href="../../App.css" rel="stylesheet" type="text/css" />
<script src="../../App.js" type="text/javascript"></script>
<script src="Demo.js" type="text/javascript"></script>
</head>
但是,演示使用的是 JQuery,我想用现有的 AngularJs 替换它,修改为 Web 插件。
我的文件开始
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js" type="text/javascript"></script>
<script src="MyDialogView.js" type="text/javascript"></script>
<title>MyApp</title>
</head>
并给出以下控制台错误:
在“DOMWindow”上执行“postMessage”失败: 提供的目标原点 ('https://outlook.office.com') 与收件人窗口的原点 ('https://localhost') 不匹配。
这看起来像是一个 CORS 问题。但是为什么我没有从上面的文件中得到它,它在 localhost 的同一目录中?
我不能发布整个应用程序,但我希望这能引起人们的记忆……我做错了什么?
[更新] 与一些类似的问题不同,不涉及 iframe。另外,添加<AppDomain>https://outlook.office.com</AppDomain> 并没有帮助(但是当我从中复制的页面没有问题时,为什么要这样做?)
【问题讨论】:
-
查看this question问题可能与AppDomain有关。
-
非常感谢,Suresh。我试过了,并更新了我的问题。它没有用,我小心地清除浏览器缓存并重新加载清单:-(
-
如果您在 Outlook for Windows 中遇到此问题,还可以尝试另一件事。将兼容性设置为 IE=Edge,好像postMessage 存在浏览器兼容性问题
-
你为什么说不涉及iframe?您如何授予用户在您的应用中访问其帐户的权限?
-
不,只是想多了解一点。您是否手动引导您的 Angular 应用程序?
标签: angularjs cors outlook-web-addins