开发Microsoft Outlook插件时遇到Axios Network Error如何解决?
解决Outlook插件中Axios Network Error(CORS相关)问题
检查插件清单的域名配置
Outlook插件运行在Office沙箱环境,跨域请求必须提前在manifest.xml的<AppDomains>节点中声明API域名,否则会被拦截。配置示例:<AppDomains> <AppDomain>你的API完整域名</AppDomain> </AppDomains>调整Axios请求适配沙箱环境
- 关闭
withCredentials选项,Office沙箱对带凭证的跨域请求限制严格:axios.get('你的API接口地址', { withCredentials: false }) - 确保请求的
Content-Type与API预期一致,避免触发预检请求失败,常用类型如application/json。
- 关闭
验证API端的CORS响应头
Postman/curl不会触发浏览器CORS机制,需确认API服务器返回的响应头覆盖插件的请求场景:Access-Control-Allow-Origin需包含插件的实际源(可在插件控制台执行console.log(window.location.origin)查看)- 确保
Access-Control-Allow-Methods、Access-Control-Allow-Headers包含请求用到的方法和自定义头。
尝试Office.js专属请求API
若常规Axios请求仍有问题,改用Office.js提供的webRequest接口,它适配Office沙箱的安全规则:Office.context.webRequest.getAsync('你的API接口地址', {}, (asyncResult) => { if (asyncResult.status === Office.AsyncResultStatus.Succeeded) { console.log('请求结果:', asyncResult.value); } else { console.error('请求失败:', asyncResult.error); } });
内容的提问来源于stack exchange,提问作者Arati
相关产品推荐
相关产品推荐

