【问题标题】:Office js api - bad request due to _host_infoOffice js api - 由于 _host_info 导致的错误请求
【发布时间】:2017-08-25 03:52:55
【问题描述】:

我正在使用 Office JS api 开发 Office 插件。它必须作为 HTML5 应用程序托管在 SAP Cloud Platform 上。

问题是,当我从桌面版本 (Excel 2016) 运行加载项时,我收到错误 ADD-IN ERROR 尝试访问此加载项时出现问题。我在 Fiddler 中跟踪了请求并找到了原因——它是添加到 GET 请求中的 _host_info 参数。它具有由“|”分隔的参数。 Cloud Platform 解析此 url 时出现问题,并以 400 Bad Request 进行响应。

来自 Fiddler 的示例:

GET /index.html?_host_Info=Excel|Win32|16.01|en-US HTTP/1.1

如果加载项是从 365 office 版本运行的,一切正常 - _host_info 参数在请求中不存在。

有什么办法可以让它工作吗?

  1. 我能否以某种方式强制 Excel 跳过/编码 _host_info 参数?
  2. 能否说服 SAP Cloud Platform 接受 url 查询参数中的“|”?

感谢您的想法!

【问题讨论】:

  • 您的桌面 Excel 2016 的版本和内部版本号是多少?
  • 听起来像是微软的一个错误。 _host_Info 参数应该是 URL 编码的,然后 SCP 会接受它。
  • @RickKirkham Microsoft Excel 2016 MSO (16.0.7329.1047) 32 位 有趣的是,MS 知道这一点并早先从 Web 版本中删除了参数(stackoverflow 上有关于此的线程)

标签: office-js


【解决方案1】:

无法跳过 _host_info 参数,因为它需要下载正确的 JS 脚本。服务器客户端使用不同的编码。部分服务器无法处理 |这就是其中一种情况。我现在不知道有什么缓解措施。如有任何建议,我们都会回复。

【讨论】:

  • 有进展吗?
  • 我们在这里更新了文档:dev.office.com/docs/add-ins/develop/…。基本上,Office 会自动将名为 _host_info 的查询参数添加到传递给 displayDialogAsync 的 URL。 (如果有的话,它会附加在您的自定义查询参数之后。它不会附加到对话框导航到的任何后续 URL)。
  • 对于认证页面中附加的hostinfo引起的问题,解决方法是(1)在您自己的域页面中打开对话框(2)在该页面中,重定向到认证页面。在这种情况下,我们不会在重定向后附加 hostinfo,它应该可以解决问题。
  • 这似乎仍然是一个问题,是否找到了更好的缓解措施、解决方法或提供了修复?
  • 回答我自己,似乎没有。 github.com/OfficeDev/office-js/issues/896 那里的反应很糟糕。
猜你喜欢
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
  • 2011-09-10
  • 1970-01-01
  • 2012-08-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多