我正在尝试使用displayDialogAsync从我们的网络应用中打开现有的登录页面,但它会返回400错误。
var loginUrl = 'https://url.com/xxxxx/login.action';
Office.context.ui.displayDialogAsync(loginUrl, {width:20, height:43}, function (asyncResult) {
loginDialog = asyncResult.value;
loginDialog.addEventHandler(Microsoft.Office.WebExtension.EventType.DialogMessageReceived, receiveMessage);
更新:在调试时,我在showDialog函数中找到了here,它添加了管道。
当我尝试比较Dropbox的登录页面时,我注意到管道已被转义。
答案 0 :(得分:1)
您的登录页面的域是否与加载项的Web应用程序的域相同?请注意以下事项:
“传递给的页面,控制器方法或其他资源 displayDialogAsync方法必须与主机位于同一个域中 页“。
这意味着您在对话框中打开的第一个页面必须与主机页面是同一个域。但您可以在该页面上配置脚本以立即重定向到另一个域上的登录页面。重定向时,_host_info
参数不会出现在URL上。