Angular发起HTTP请求在IE中出现SCRIPT7002网络错误的解决方法
解决IE下Angular HTTP请求的SCRIPT7002: XMLHttpRequest: Network Error 0x2ee4错误
这个错误我之前在项目里帮同事排查过好几次,结合你的代码和IE的特性,给你几个针对性的解决思路:
1. 补上IE所需的Angular兼容Polyfills
IE不支持很多现代JavaScript特性,而Angular的HttpClient依赖这些特性才能正常工作。你得检查项目根目录的polyfills.ts文件,启用IE相关的polyfill配置:
找到以下代码块,把注释去掉(如果原本是注释状态的话):
/** IE9, IE10, IE11 requires all of the following polyfills. **/ import 'core-js/es/symbol'; import 'core-js/es/object'; import 'core-js/es/function'; import 'core-js/es/parse-int'; import 'core-js/es/parse-float'; import 'core-js/es/number'; import 'core-js/es/math'; import 'core-js/es/string'; import 'core-js/es/date'; import 'core-js/es/array'; import 'core-js/es/regexp'; import 'core-js/es/map'; import 'core-js/es/weak-map'; import 'core-js/es/set'; /** IE10 and IE11 requires the following for NgClass support on SVG elements */ import 'classlist.js'; // 记得先执行 npm install classlist.js /** IE10 and IE11 requires the following for the Reflect API. */ import 'core-js/es/reflect';
然后安装对应的依赖包:
npm install core-js classlist.js --save
2. 排查URL和IE的网络/安全设置
错误码0x2ee4本质是域名解析失败或连接被中断,你可以做这些检查:
- 直接在IE里访问请求的
URL(如果是GET请求的话),看能不能正常返回内容,排除域名写错、后端服务不可用的问题 - 检查IE安全级别:打开「Internet选项」→「安全」→「自定义级别」,确保ActiveX控件相关选项没被禁用,跨域请求权限也放开
- 确认IE代理设置和其他浏览器一致,避免代理导致的连接失败
3. 调整请求头和请求体格式
你的代码里设置了Content-Type: application/json和Authorization头,IE对这些的处理可能和现代浏览器有差异:
- 尝试去掉手动设置的
Content-Type,让Angular自动适配;如果后端支持,也可以换成application/x-www-form-urlencoded,部分IE版本对JSON格式的POST请求兼容不好 - 确认
Authorization头格式正确,比如如果是Bearer认证,要写成Bearer <auth-token>,IE对格式错误的头会更敏感
修改后的请求示例可以参考:
let headersConfig: HttpHeaders = new HttpHeaders(); headersConfig = headersConfig.set('Authorization', 'Bearer <auth-token>'); // 注意Bearer前缀(如果需要的话) // 如果后端支持表单格式,把请求体转为FormData const formData = new FormData(); Object.keys(request).forEach(key => formData.append(key, request[key])); httpClient.post(URL, formData, { headers: headersConfig }).subscribe(data => { // 成功处理逻辑 }, error => { // 打印错误方便排查 console.log('请求错误详情:', error); });
4. 禁用IE兼容性视图
IE的兼容性视图会强制用旧版渲染引擎,容易引发请求异常:
- 打开IE「工具」→「兼容性视图设置」,确保你的项目域名不在列表里
- 在HTML的
<head>里加个meta标签,强制IE用最新引擎:
<meta http-equiv="X-UA-Compatible" content="IE=edge">
5. 检查后端CORS配置(跨域场景)
如果是跨域请求,后端的CORS配置要兼容IE:
- IE的XDomainRequest不支持自定义头(比如Authorization),后端需要在
Access-Control-Allow-Headers里明确允许这些头 - 不要用
*作为Access-Control-Allow-Origin的值,IE带自定义头时不允许这种配置,要写具体的域名
内容的提问来源于stack exchange,提问作者Bhadra
相关产品推荐
相关产品推荐

