Outlook桌面端加载项使用Bearer token请求API报网络错误求助
Outlook桌面端加载项跨域带Bearer token请求失败排查方案
1. 先校验加载项清单AppDomains配置合法性
- 确保
AppDomains条目仅包含协议+根域名,不得携带路径、端口后缀,正确示例为<AppDomain>https://domain2</AppDomain>,如果存在子域名也要单独添加,不可遗漏 - 确认清单中权限等级配置符合要求,跨域请求外部资源需将
Permissions节点设置为至少ReadWriteItem级别,过低的权限会被Office客户端直接拦截请求
2. 核验API服务端CORS配置完整性
- 必须在
Access-Control-Allow-Headers中显式添加Authorization头,仅配置Access-Control-Allow-Origin无法通过跨域校验 - 针对
OPTIONS预检请求,服务端不得校验Authorization头,需直接返回200/204状态码,同时携带完整的CORS响应头;如果后端对OPTIONS请求做了身份校验,会直接返回401导致请求失败 - 如果你的请求配置了
withCredentials: true,则Access-Control-Allow-Origin不能设置为通配符*,必须填写加载项托管域名https://domainId的精确值,同时Access-Control-Allow-Credentials需设为true
3. 适配低版本Outlook桌面端内核限制
- 2016及更早版本的Outlook桌面端默认使用IE内核渲染加载项,跨域请求传递自定义头需要API响应头添加P3P配置:
P3P: CP="CAO PSA OUR",否则IE会自动拦截跨域的Authorization头 - 新版本使用WebView2内核的Outlook,可通过Fiddler抓包确认请求是否已经从客户端发出,排查WebView2安全策略是否拦截了自定义请求头
4. 校验请求参数一致性
- 对比桌面端和网页端获取到的Bearer token是否完全一致,排查是否存在编码错误、token被截断、多余空格等问题
- 确认请求的URL、请求方法、其他头参数在两端完全一致,排除桌面端路径拼接错误的问题
内容的提问来源于stack exchange,提问作者tm havy
相关产品推荐
相关产品推荐

