onreadystatechange(初学ajax,onreadystatechange没反应)
大家好,今天给各位分享onreadystatechange的一些知识,其中也会对初学ajax,onreadystatechange没反应进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
初学ajax,onreadystatechange没反应
先看下xmlHttp.readyState这个状态码:
0:请求未初始化(还没有调用open())。
1:请求已经建立,但是还没有发送(还没有调用send())。
2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。
3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。
4:响应已完成;您可以获取并使用服务器的响应了。
processor表示的回调函数,是当xmlHttp.readyState为4的时候,成功返回内容后才进入操作的,你的xmlHttp.readyState为0,当然不行啊。
希望对你有帮助,分析给你之前我学习的一篇文章,希望对你有帮助:
http://www.cnblogs.com/snowinmay/p/3195072.html
ie中为啥不能获取document.prototype.onreadystatechange
如果第二次通过XMLHttpRequest去请求一个URL,则不会触发onreadystatechange时间。
虽然从调试插件来看,ie是进行了这次请求,后来发现,这个是因为在ie下,如果请求的URL已经被浏览器cache,则调用send方法以后,xhr的readyState已经成为了4,即一开始就是请求完成的状态,当然以后readystate不会再被赋值,也不会触发onreadystatechange事件。
求教ajax 进不了onreadystatechange 状态一直是1
今天抽空弄了一下关于Ajax的问题,遇到了你说的这个情况,查询了一下相关解决方案,得到的解答是:在调用函数的时候不能带任何参数,使用()都不行!
具体解决方法是,将你的代码中下面的这一段
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4&& xmlhttp.status==200){
msg=xmlhttp.responseText;
}
}
拆分开,也就是=后面的写成一个单独的function。比如:
function connect(){
if(xmlhttp.readyState==4&& xmlhttp.status==200){
msg=xmlhttp.responseText;
}
}
然后将原先的代码调用修改为xmlhttp.onreadystatechange=connect;
这个地方千万不能写成xmlhttp.onreadystatechange=connect();
也就是connect后面千万别加(),之后readyState的状态就会发生改变了。
这个现象弄的我哭笑不得,但最后的确通过这个方法解决了,祝你好运!
怎么获得onreadystatechange调用的函数的返回值
function yanzheng(){
xmlHttp.onreadystatechange= function()
{
return false;
}
return ture;
}
这里的return false,是内部function()的返回值,而不是function yanzheng的返回值,第二个,return true才是外层flase的返回值哈:)
--------------------------------
这里最好不要用onSubmit="return yanzheng()"
也不要用input type="submit"
因为ajax会有个延时和等待,但是函数会立即返回一个值(true/false),因此不适合用在这里作为判断,流程应该是,先判断是否符合,符合再提交,不符合,直接return:)
可以用
<input type="button" onclick="yanzheng(this.form)" value="submit"/>
如果验证通过,在函数里面执行 form.submit()动作就好了:)
非常感谢您的阅读!我们希望本文对于解决您关于onreadystatechange的问题提供了一些有价值的信息。如果您还有其他疑问,我们将很乐意为您提供进一步的帮助。