Excel 365中Office Scripts的fetch函数部分URL请求失败问题
解决Office Scripts中fetch请求部分URL失败的问题
问题原因分析
你遇到的Failed to fetch错误,核心原因有两个:
- HTTP协议限制:Office Scripts运行在Office的安全环境中,默认会拦截非HTTPS的HTTP请求。你测试的dummyjson接口用的是HTTPS,而ip-api的请求用的是HTTP,这是导致请求失败的关键。
- 冗余请求头:GET请求里添加
Content-Type: application/json完全没必要,部分服务器会对这种不符合规范的请求头做出拦截或返回错误响应。
修复后的代码
async function main(workbook: ExcelScript.Workbook) { // 改用HTTPS协议的目标接口地址 let url = 'https://ip-api.com/json/24.48.0.1'; // GET请求无需额外请求头,简化配置 let options = { 'method': 'GET', } await fetch(url, options) .then((response) => response.json()) .then((result) => console.log(result)) .catch((error) => console.error('请求错误详情:', error)); // 新增错误捕获,方便后续排查问题 }
额外注意事项
- 后续使用fetch调用外部接口时,优先选择HTTPS协议的地址,避免被Office安全策略拦截。
- 只有POST、PUT这类需要发送JSON请求体的接口,才需要设置
Content-Type: application/json头,GET请求不需要额外配置该字段。
内容的提问来源于stack exchange,提问作者Viet Pm
相关产品推荐
相关产品推荐

