栏目导航
热点推荐
- 流行的70个AJAX演示及下载
- 20个Ajax关键议题
- AJAX技术在PHP开发中的简单应用
- 如何选择使用AJAX的最佳时机
- 一日精通Ajax技术
- [四天学会ajax] 学习Ajax教程第
- [四天学会ajax] 学习Ajax教程第
- ajax的server部分(php版)
- 在Ajax 应用程序中实现数据之间
- 解决AJAX 跨域访问完整解决方案
- Ajax获取页面被缓存的解决方案
- ajax检测用户名
阅览排行
Firefox下AJAX0x80040111错误的解决方法
www.jz123.cn 2008-12-05 来源: 中国建站 编辑整理 我要投递新闻
做AJAX的时候,在IE下调试一切正常,而到了Firefox下,问题就出来了,当我修改input中值的时候,调试台中显示:
错误: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: http://localhost:8080/jk/inc/ajaxreg.js :: handleRequestStateChange_code :: line 196" data: no]
源文件:http://localhost:8080/jk/inc/ajaxreg.js
行:196
找到这一行,代码是:
if (request.status == 200) {}
在百度和GOOGLE上搜索了个底朝天,没有找到好的解决办法,但存在这个问题的网友还真不少,大致可以找出问题存在于:由于重复提交XMLHttpRequest造成的,我 仔细检查了下代码,果然,大悟!请看下面代码:
<input name="code" type="text" id="code" size="4" maxlength="4" class="textipt" onChange="codecheck('cd')" onBlur="codecheck('cd')"/>
也就是当我改变INPUT的时候就验证,当INPUT失去焦点的时候也验证,当时这样设计并没有考虑到使用AJAX,现在问题出来了,修改 INPUT后离开,同时也就失去了焦点,这样会极短的时间内验证两次,而此时XMLHttpRequest的值还没有返回回来就又被请求了一次,于是就出 现了重复提交的错误。。
问题原因找到了,解决就很方便了,我把onChange="codecheck('cd')"删掉,毕竟修改INPUT后肯定是要离开INPUT使其失去焦点的嘛!
OK,一切正常,FF和IE都没有任何报错,而且功能正常实现
上一篇:一日精通Ajax技术 下一篇:关于AJAX取XML中空节点的问题