一次Ajax报错:“存储空间不足,无法完成此操作”的解决经验

本文主要是介绍一次Ajax报错:“存储空间不足,无法完成此操作”的解决经验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

连续几天我们收到几位客户的问题工单,问题描述都类似,都是在做登陆或者交易时报脚本错误,交易无法正常执行。

我们“远程协助”客户机器时,调试发现都是ajax代码出错,错误如下:

网页错误详细信息

 

用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)

时间戳: Fri, 1 Aug 2014 08:05:43 UTC

 

 

消息: 存储空间不足,无法完成此操作。

 

行: 772

字符: 8

代码: 0

URI: https://xxx.xxxxx.com/yyy/script.do

 

网页错误详细信息

 

用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)

时间戳: Fri, 1 Aug 2014 08:11:44 UTC

 

 

消息: 数组长度必须赋值为有限正数

行: 722

字符: 3

代码: 0

URI: https://xxx.xxxxx.com/yyy/script.do


网络上查了一下相关的资料,按说明调整了IE选项,把ie6升级到ie8,安装其他的浏览器,检查了相关的注册表项等等,

但是这些都没有解决这个问题。

后面我们联系了一家客户,去客户公司现场调试并详细了解了相关问题和情况,

最后采集了机器数据回去后做详细分析发现了注册表中有个可疑的条目:

HKEY_CLASSES_ROOT\CLSID\{ED8C108E-4349-11D2-91A4-00C04F7969E8}\InProcServer32

%SystemRoot%\System32\msxml3.dll

我们怀疑这个和我们的ajax方法有冲突;我们原来的js代码中有一段:

Window.ActiveXObject?newActiveXObject(“Microsoft.XMLHTTP”):new XMLHttpRequest();


(比较老的代码了,有段历史了,公司早期做的封装,后面一直没更新)

对比就发现了客户机器上的msxml3.dll比我们代码中使用的Microsoft.XMLHTTP版本更新,

后来我们为了兼容这个版本问题修改了代码,新代码如下:


function createXmlRequest(){
if(window.ActiveXObject && !window.XMLHttpRequest){
//IE浏览器
var msxmls = ['MSXML2.XMLHTTP.6.0','Msxml2.XMLHTTP.5.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0','MSXML2.XMLHTTP.2.6','Msxml2.XMLHTTP','Microsoft.XMLHTTP'];
for (var i = 0; i < msxmls.length; i++) {
try {
return new ActiveXObject(msxmls[i]);
} catch (e) {
}
}
}else if(window.XMLHttpRequest){//Mozilla、Opera 等非IE浏览器
return new XMLHttpRequest();
}else
{
return null;
} 
}



 后来总结发现,那批有问题的客户是因为都安装一款财务软件,该软件自带msxml3.dll,并且往注册表中写入上面的那个项,

从而导致了和我们的脚本代码冲突使页面报错。

这篇关于一次Ajax报错:“存储空间不足,无法完成此操作”的解决经验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1055781

相关文章

Pycharm安装报错:Cannot detect a launch configuration解决办法

《Pycharm安装报错:Cannotdetectalaunchconfiguration解决办法》本文主要介绍了Pycharm安装报错:Cannotdetectalaunchconfigur... 本文主要介绍了Pycharm安装报错:Cannot detect a launch configuratio

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

Flask解决指定端口无法生效问题

《Flask解决指定端口无法生效问题》文章讲述了在使用PyCharm开发Flask应用时,启动地址与手动指定的IP端口不一致的问题,通过修改PyCharm的运行配置,将Flask项目的运行模式从Fla... 目录android问题重现解决方案问题重现手动指定的IP端口是app.run(host='0.0.

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

mysql关联查询速度慢的问题及解决

《mysql关联查询速度慢的问题及解决》:本文主要介绍mysql关联查询速度慢的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql关联查询速度慢1. 记录原因1.1 在一次线上的服务中1.2 最终发现2. 解决方案3. 具体操作总结mysql

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod

Spring MVC跨域问题及解决

《SpringMVC跨域问题及解决》:本文主要介绍SpringMVC跨域问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录跨域问题不同的域同源策略解决方法1.CORS2.jsONP3.局部解决方案4.全局解决方法总结跨域问题不同的域协议、域名、端口

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

SpringBoot操作MaxComputer方式(保姆级教程)

《SpringBoot操作MaxComputer方式(保姆级教程)》:本文主要介绍SpringBoot操作MaxComputer方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的... 目录引言uqNqjoe一、引入依赖二、配置文件 application.properties(信息用自己