You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Outlook 365插件OnMessageSend事件fetch请求Outlook 364失效排查求助

问题描述

我已配置让Outlook 365在邮件发送事件(OnMessageSend)触发后发起fetch请求,该请求在Outlook网页版可正常工作,但在Outlook 364中无法运行。

请求代码如下:

fetch(asyncResultBOParsed.baseURL + "/persons/" + personId + "/notes/WithDocument", {
  headers: {
    accept: "application/json, text/plain, */*",
    "accept-language": "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7",
    authorization: asyncResultBOParsed.access_token,
  },
  referrerPolicy: "same-origin",
  mode: "cors",
  body: formData,
  method: "POST",
}).then(function () {
  event.completed({
    allowEvent: true,
  });
})
.catch(function (e) {
  event.completed({
    allowEvent: false,
    errorMessage: e.name + " " + e.message,
  });
});

我始终得到如下错误结果,尝试过向localhost及非localhost端点发送POST请求,请问该如何调试此问题?

错误结果截图

调试方案
  • 启用Outlook桌面版开发者工具:按F12打开工具(若无效,通过文件>选项>高级>开发人员工具勾选启用),切换到「网络」标签,重新触发发送事件,查看请求的状态码、头信息、响应内容,定位是请求发送失败、服务器无响应还是CORS问题。
  • 适配桌面版CORS策略:Outlook桌面版运行环境和网页版不同,可先移除mode: "cors"改为mode: "no-cors"测试,验证请求能否发送;同时确保后端CORS配置允许桌面版的请求来源。
  • 检查HTTPS证书有效性:如果请求HTTPS端点,桌面版对证书校验更严格,需确保服务器证书为正规CA签发,避免自签名证书被拦截。
  • 打印完整错误细节:在catch块中添加console.log('错误详情:', e),到开发者工具「控制台」查看完整错误栈,不要仅返回简化的错误信息。
  • 简化请求排查问题:先发送不含formData、自定义头的极简POST请求,确认基础请求正常后,再逐步添加参数定位触发问题的部分。
  • 排查网络环境限制:测试在非企业内网环境下运行,排除代理、防火墙对请求的拦截;同时检查Outlook桌面版的安全设置,确认未阻止外部请求。

内容的提问来源于stack exchange,提问作者Konstantin Vahrushev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 06:52:26