从excel联机任务窗格访问window.open弹出窗口

从excel联机任务窗格访问window.open弹出窗口,excel,office365,office-js,Excel,Office365,Office Js,我目前正在调试一些以前的开发人员编写的代码。 我们使用下面的代码打开一个新窗口来验证用户(oAuth2流) var oAuth2Window=window.open(_embeddedStartUrl,“身份验证”, “位置=0,状态=0,滚动条=1,可调整大小=1,高度=600,宽度=450”) 用户成功登录后,它试图访问oAuth2Window上的某些属性,但我得到: “访问被拒绝” 主机名位于不同的服务器上 此操作当前正在Excel Online的任务窗格中进行 这是测试了一段时间前,正在

我目前正在调试一些以前的开发人员编写的代码。 我们使用下面的代码打开一个新窗口来验证用户(oAuth2流)

var oAuth2Window=window.open(_embeddedStartUrl,“身份验证”, “位置=0,状态=0,滚动条=1,可调整大小=1,高度=600,宽度=450”)

用户成功登录后,它试图访问oAuth2Window上的某些属性,但我得到:

“访问被拒绝”

主机名位于不同的服务器上

此操作当前正在Excel Online的任务窗格中进行

这是测试了一段时间前,正在工作,并投入生产

在过去的一周里,我在本地和生产/现场环境中看到了这个问题


这以前是怎么工作的?如果知道无法从iframe访问弹出窗口,则无法从不同的客户端应用程序中使用此方法。相反,您需要通过对话框API窗口发送OAuth工作流


请参阅此处的链接(靠近页面底部)。

感谢Stewart的回复。我有没有办法删除添加到URL末尾的“\u host\u info”?这导致oAuth2服务器上出现500个API错误。我不知道,我不相信。另外,您确定额外的查询字符串参数导致了500个错误吗?我觉得这很不寻常。通常忽略未知或意外的url参数。我使用Oauth2授权我的应用程序。我所做的是打开一个带有对话框api的页面,该页面将转到我的一个本地应用程序页面。从那里,我单击一个按钮来调用流,然后当重定向返回时,我没有被授权,我使用回调函数将我需要的访问令牌发送回任务窗格。在这一点上,我关闭了对话框api窗口。是的,我同意,这是不寻常的,我测试了其他URL,它工作正常。我将联系Oauth团队并找出原因。谢谢您的建议。您好@StewardBeck,您能用一个例子列出您的步骤和流程吗?我问这个问题的原因是,我在将访问令牌从子对象传递回父对象时遇到了问题。我看了一下Office.context.ui.displayDialogAsync。这在excel online中不适用,因为oauth服务器页面不允许在iframe中加载。