一次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

相关文章

IDEA和GIT关于文件中LF和CRLF问题及解决

《IDEA和GIT关于文件中LF和CRLF问题及解决》文章总结:因IDEA默认使用CRLF换行符导致Shell脚本在Linux运行报错,需在编辑器和Git中统一为LF,通过调整Git的core.aut... 目录问题描述问题思考解决过程总结问题描述项目软件安装shell脚本上git仓库管理,但拉取后,上l

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

idea npm install很慢问题及解决(nodejs)

《ideanpminstall很慢问题及解决(nodejs)》npm安装速度慢可通过配置国内镜像源(如淘宝)、清理缓存及切换工具解决,建议设置全局镜像(npmconfigsetregistryht... 目录idea npm install很慢(nodejs)配置国内镜像源清理缓存总结idea npm in

idea突然报错Malformed \uxxxx encoding问题及解决

《idea突然报错Malformeduxxxxencoding问题及解决》Maven项目在切换Git分支时报错,提示project元素为描述符根元素,解决方法:删除Maven仓库中的resolv... 目www.chinasem.cn录问题解决方式总结问题idea 上的 maven China编程项目突然报错,是

在Ubuntu上打不开GitHub的完整解决方法

《在Ubuntu上打不开GitHub的完整解决方法》当你满心欢喜打开Ubuntu准备推送代码时,突然发现终端里的gitpush卡成狗,浏览器里的GitHub页面直接变成Whoathere!警告页面... 目录一、那些年我们遇到的"红色惊叹号"二、三大症状快速诊断症状1:浏览器直接无法访问症状2:终端操作异常

使用Java填充Word模板的操作指南

《使用Java填充Word模板的操作指南》本文介绍了Java填充Word模板的实现方法,包括文本、列表和复选框的填充,首先通过Word域功能设置模板变量,然后使用poi-tl、aspose-words... 目录前言一、设置word模板普通字段列表字段复选框二、代码1. 引入POM2. 模板放入项目3.代码

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

Python内存管理机制之垃圾回收与引用计数操作全过程

《Python内存管理机制之垃圾回收与引用计数操作全过程》SQLAlchemy是Python中最流行的ORM(对象关系映射)框架之一,它提供了高效且灵活的数据库操作方式,本文将介绍如何使用SQLAlc... 目录安装核心概念连接数据库定义数据模型创建数据库表基本CRUD操作创建数据读取数据更新数据删除数据查

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc