Office Script Fetch是否支持HTTP协议?VPN环境请求失败咨询
Office Script fetch对HTTP协议的限制说明及解决方案
核心结论
Office Script的fetch方法默认拒绝非localhost的HTTP请求,仅允许HTTPS请求或本地回环地址(127.0.0.1/localhost)的HTTP请求,这是微软基于安全策略的强制限制,和VPN链路加密无关。
测试结果对应规则验证
结合你做的测试,完全符合这个限制:
- 成功请求的场景:
- 所有HTTPS地址(包括公网的
https://jsonplaceholder.typicode.com/todos/1、https://<someDNS>/api/collections/public/records):满足加密传输要求,请求正常 - 本地回环HTTP地址(
http://127.0.0.1/api/collections/public/records):属于微软允许的本地开发例外场景,请求正常
- 所有HTTPS地址(包括公网的
- 失败请求的场景:
- VPN内的非localhost HTTP地址(
http://<localip>/api/collections/public/records):既不是HTTPS也不是本地回环地址,触发安全拦截规则,请求失败
- VPN内的非localhost HTTP地址(
限制原因
微软为了避免明文HTTP传输带来的敏感数据泄露风险,对Office Script的网络请求做了应用层的安全校验:只有加密的HTTPS请求,或者用于本地开发调试的回环HTTP请求会被放行。VPN的加密是在网络链路层,无法绕过Office Script在应用层的安全检查,所以即便VPN已经加密了链路,非localhost的HTTP请求依然会被拒绝。
可行解决方案
- 给VPN内的服务配置HTTPS证书:可以使用企业内部CA签发的证书,只要Office Script运行的环境信任该CA,即可正常访问
- 调整服务绑定地址:如果是开发测试场景,将服务绑定到
localhost或127.0.0.1,通过本地回环地址发起请求 - 搭建内部HTTPS代理:在VPN内部部署一个HTTPS代理服务,把对HTTP接口的请求转发为HTTPS请求后,再由Office Script调用该代理
内容的提问来源于stack exchange,提问作者sutan
相关产品推荐
相关产品推荐

