部署于Azure的Office-js Addin调用Web API出现Fetch错误求排查
Office JS Addin 调用Azure容器化ASP.NET Core API 报
failed to fetch 排查清单 - 检查Office Addin清单配置:必须在清单文件的
<AppDomains>节点中添加Web API的根域名,Office运行时会拦截所有未在清单中声明的外部域名请求,本地localhost默认豁免但线上域名必须显式声明 - 检查HTTPS配置合规性:Office JS强制要求所有外部请求必须走HTTPS协议,禁止HTTP请求。需确认:
- Azure容器实例的Web API已配置有效的公网SSL证书,不可使用自签名证书
- Addin中Fetch调用的API地址前缀为
https://,不存在硬编码HTTP的情况 - ASP.NET Core服务已启用TLS 1.2及以上版本,禁用低版本TLS协议
- 检查CORS配置有效性:
- 确保ASP.NET Core的CORS中间件注册在所有中间件的最前面,优先于授权、路由等中间件,避免OPTIONS预检请求被其他中间件拦截返回401/405错误
- CORS规则需显式允许
OPTIONS请求方法,同时如果请求带身份凭证,需开启AllowCredentials()配置 - 核对CORS允许的源地址与线上Addin的实际访问地址完全一致,不要多末尾斜杠、不要混淆http/https协议头
- 检查Fetch请求参数配置:如果API需要Cookie/身份凭证,Fetch请求需显式配置
credentials: 'include'、mode: 'cors'参数 - 检查Azure容器实例网络配置:
- 确认容器的端口映射正确,容器内服务端口与ACI暴露的公网端口(通常为443)匹配
- 若绑定了网络安全组(NSG),需放行入站443端口的所有公网访问,或显式放行Office 365服务IP段
- 排查请求链路:打开Addin运行的浏览器开发者工具,查看Network面板的请求详情:
- 若OPTIONS预检请求被浏览器直接拦截,优先排查清单AppDomains配置、CORS源地址匹配问题
- 若OPTIONS请求返回4xx/5xx错误,优先排查Web API的CORS中间件顺序、方法允许规则
内容的提问来源于stack exchange,提问作者Antoine12
相关产品推荐
相关产品推荐

