Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26188137
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: 系统运维

2009-07-26 16:16:19

做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 :: :: handleRequestStateChange_code :: line 196" data: no]
源文件:
行:196

找到这一行,代码是:

if (request.status == 200) {}

在百度和GOOGLE上搜索了个底朝天,没有找到好的解决办法,但存在这个问题的网友还真不少,大致可以找出问题存在于:由于重复提交XMLHttpRequest造成的,我 仔细检查了下代码,果然,大悟!请看下面代码:



也就是当我改变INPUT的时候就验证,当INPUT失去焦点的时候也验证,当时这样设计并没有考虑到使用AJAX,现在问题出来了,修改 INPUT后离开,同时也就失去了焦点,这样会极短的时间内验证两次,而此时XMLHttpRequest的值还没有返回回来就又被请求了一次,于是就出 现了重复提交的错误。。

问题原因找到了,解决就很方便了,我把onChange="codecheck('cd')"删掉,毕竟修改INPUT后肯定是要离开INPUT使其失去焦点的嘛!
阅读(1060) | 评论(1) | 转发(0) |
0

上一篇:Smarty中嵌入FCK整理!

下一篇:Smarty教程

给主人留下些什么吧!~~

chinaunix网友2009-07-27 09:14:12

现在要不断学习 + 动手实践!反复练习在项目中提高 !@ 深入掌握MVC