正在回答 回答被采纳积分+1
无论send写在onreadystatechange的前面还是后面,在send方法后面打印readystate值的话,一直就是1,因为readystate的几种状态是:
0 请求未初始化(在调用 open() 之前)
1 请求已提出(调用 send() 之前)
2 请求已发送(这里通常可以从响应得到内容头部)
3 请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应)
4 请求已完成(可以访问服务器响应并使用它)
send执行之后,才会变为2。
由于默认异步方式执行,会一边发送请求,一边继续向下执行console.log。所以会先打印出readystate为1的值。readystate的值变化时,会触发onreadystatechange事件,所以在里面会成功打印出2,3,4。
提交表单时,数据可以通过传参的形式传递。
XHR.open(method,url,boolean)是创建请求,send()方法发送请求。
get和post是2种方式区别:在传送参数上,get方式有长度限制,post没有,而且有加密信息的话,一般此使用post方式。在做数据查询时,建议用get方式;而在做数据添加、修改或删除时,建议用post方式。
onreadyStateChange事件是在readyState属性发生改变时触发的,readyState的值表示了当前请求的状态,在事件处理程序中可以根据这个值来进行不同的处理。
ajax提交表单:点击提交的时候,先创建请求,然后发送请求,并将从表单中获取到的数据作为参数传送到服务器,服务器做出响应后,可在onreadyStateChange方法中,查看响应结果。
相似问题
登录后可查看更多问答,登录/注册
- 参与学习 人
- 提交作业 467 份
- 解答问题 4826 个
本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星