You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XMLHttpRequest请求XML接口在IE正常Chrome中pending如何解决

问题原因

  • 最核心的原因是你代码中使用了同步XMLHttpRequest:req.open("GET", "LINK" ,false)中第三个参数传false代表发起同步请求,Chrome浏览器对同步请求的限制远严格于IE,目前Chrome已经逐步禁止在页面主线程中使用同步XHR,符合拦截规则的请求会直接被挂起进入pending状态。
  • 接口响应头不符合Chrome校验规则:你调用JSON格式公开API正常,说明问题出在这个XML接口本身的响应配置:
    • 响应的Content-Type头未正确配置:需返回application/xml、text/xml等和XML格式匹配的类型,Chrome对同步请求的返回内容类型校验比IE严格,类型不匹配会直接阻塞请求。
    • 跨域CORS配置缺失:如果XML接口和你的前端页面不属于同域,IE默认的同源策略校验更宽松,无CORS头也可能放行,但Chrome会直接拦截跨域同步请求,导致请求一直pending。
    • 缓存控制头缺失:如果接口未返回明确的缓存规则头,Chrome的缓存校验逻辑会卡住同步请求,IE无此类严格校验。

修复方案

  • 优先替换为异步请求:把req.open的第三个参数改为true,异步XHR是目前所有主流浏览器支持的标准用法,无兼容和拦截问题。
  • 调整XML接口响应配置:确保接口返回正确的Content-Type头,跨域场景下补充符合要求的CORS响应头。
  • 若必须使用同步请求:确保接口和前端页面部署在同域下,且所有响应头字段符合Chrome规范,无格式错误或缺失。

内容的提问来源于stack exchange,提问作者m4rtin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 18:15:01