【问题标题】:cors issue with Outlook Add-InOutlook加载项的cors问题
【发布时间】:2018-11-14 05:10:13
【问题描述】:

我正在编写 Outlook 加载项,并尝试向 Jira 发出获取请求。但是,我遇到了我认为是 CORS 的问题,我不确定如何解决它。

错误信息说:

“[阻止]https://localhost:3000/index.html?_host_Info=Outlook$Mac$16.02$en-US 的页面不允许显示来自http://mysite.atlassian.net/rest/api/2/myself 的不安全内容。”

有没有办法从 Outlook 加载项发出获取请求以绕过 CORS?

我的加载项只是一个基于反应的前端应用程序,获取请求需要基本身份验证,这在邮递员中可以正常工作(这当然在浏览器之外,但 Outlook 加载项在浏览器组件中运行)。

【问题讨论】:

  • 错误提示您正在尝试访问不安全的位置“mysite.atlassian.net/rest/api/2/myself”。所有位置都必须是安全的 (https://),Office 加载项才能进行呼叫。为您的休息服务设置 SSL 证书。
  • 谢谢斯拉瓦,很好的收获。我正在对代码进行更改,并从 url 的 https 中删除了 s。当我重新添加 s 时,我得到一个直接的 cors 错误:Fetch API 无法加载 mysite.atlassian.net/rest/api/2/myself。 Access-Control-Allow-Origin 不允许来源localhost:3000。但正如我所说,我正在向 Jira Rest API 发出 fetch 请求,因此我无法对服务器进行任何更改。
  • 好的,现在错误是 CORS。这取决于服务器是否允许和拒绝 CORS 请求。你能控制服务器吗?您可以更改某些内容以允许某些 URL 发出 CORS 请求吗?如果没有,您应该在创建自己的服务时寻找解决方案,该服务将允许来自您的加载项和来自此服务调用服务器到服务器的请求从原始休息点获取信息。
  • 我将使用 Jira Rest API 研究 OAuth,如果失败,我想我将不得不按照您的建议创建代理服务器。

标签: office-js outlook-web-addins


【解决方案1】:

在外接程序托管的域之外进行调用时,您需要在外接程序的清单中指定这些域:

<AppDomains>
    <AppDomain>http://mysite.atlassian.net/</AppDomain>
    <AppDomain>https://mysite.atlassian.net/</AppDomain>
</AppDomains>

【讨论】:

  • 谢谢 Marc,我也会调查一下
  • 遇到同样的问题,但即使将域添加到清单后仍然出现同样的错误:localhost:8080/</AppDomain>
  • 您需要指定https://。根据我的阅读和看到,http:// 是不允许的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-26
  • 1970-01-01
  • 2018-05-19
  • 1970-01-01
  • 1970-01-01
  • 2019-03-11
  • 1970-01-01
相关资源
最近更新 更多