CODE:
错误: [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找到这一行,代码是:CODE:
if (request.status == 200) {}在百度和GOOGLE上搜索了个底朝天,没有找到好的解决办法,但存在这个问题的网友还真不少,大致可以找出问题存在于:由于重复提交XMLHttpRequest造成的,我 仔细检查了下代码,果然,大悟!请看下面代码:CODE:
<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都没有任何报错,而且功能正常实现。







最新回复
谢谢。还没遇到这种问题,先作个记号。
[ 本帖最后由 i.don 于 2008-11-23 23:56 编辑 ]
onChange事件的触发也是需要文本框失去焦点后。
这样在第一次在文本框输入内容失去焦点后就会同时调用onChange和onBlur两个事件了。
下面是一个简单的例子,可以测试一下。
提示:您可以先修改部分代码再运行
[ 本帖最后由 ly5 于 2008-11-24 01:29 编辑 ]