【问题标题】:Send POST AJAX request from Office Add-In从 Office 加载项发送 POST AJAX 请求
【发布时间】:2017-12-31 16:27:00
【问题描述】:

我正在尝试从我的 Outlook 加载项发送第三方服务的 POST Ajax 请求,但无论我尝试什么,我都会收到Error: Access is denied 和状态0(请求从未到达服务器)。

假设我们在 Outlook 后面运行 IE9 或 8,我尝试了像 https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest 这样的老派黑客。

$.ajax({
    url: endpoint,
    data: JSON.stringify({'1':'2'}),
    // headers: {'X-Requested-With': 'XMLHttpRequest'},
    contentType: 'text/plain',
    type: 'POST',
    dataType: 'json',
    error: function(xhr, status, error) {
        // error
      }
}).done(function(data) {
    // done
  });

还有什么我需要实现的吗?当然,我将我的域添加到清单 AppDomain 属性。

干杯

【问题讨论】:

    标签: ajax outlook office365 outlook-addin office-js


    【解决方案1】:

    向 3rd 方服务发送请求需要执行以下操作...

    • 将服务 URI 添加到 AppDomain 列表(您已经完成了。)
    • 服务必须有 SSL 端点; “https://your.domain”必须包含在“AppDomain”条目中(见上文)
    • 该服务必须允许对您的应用程序(托管 Outlook App URI)域或 any 域的 CORS 请求。这取决于服务创建者是否允许通过 Ajax 连接客户端应用程序。

    在观察您的代码时,我注意到您正在发送 JSON 对象,但将内容类型设置为“text/plain”。联系服务创建者以获取有关他们接受请求的数据类型的信息。通常服务允许“application/json”,但不允许纯文本。

    【讨论】:

    • 还有一点值得注意,Windows 版 Outlook 使用的是 IE11,但加载项跨平台运行,因此假设您的用户运行的是哪个浏览器/引擎并不安全。
    • @SlavaIvanov,是否有任何最低Mailbox 要求来执行这些请求?因为dev.office.com/reference/add-ins/outlook/1.5/index 说在 1.5 中引入了调用 REST API(?)
    • @Niko 该文档正在讨论在特定 API 级别引入的 Exchange (Outlook) REST API。最初的问题是关于与第 3 方 REST 服务的连接,它对 Office.js API 级别没有任何限制,并且 1.0 完全可以。最好的问候。
    • 官方文档中是否提到了 SSL 要求?在这种情况下,是否仅对 POST 请求有要求?因为我只能向我的非 SSL 服务发送 get 请求。
    • @YazidErman 是的,SSL 是 Outlook 加载项的要求。请参阅Privacy and security for Office Add-ins 文档。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-09
    • 2019-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 2015-06-22
    相关资源
    最近更新 更多