老师你看下我想的对不对

老师你看下我想的对不对

ajax请求的步骤

第一步:获取到异步对象XMLHttpRequest
第二步:对象的open方法里有地址,就是建立http请求,但是服务器还不知道
第三步:send方法发送请求,告诉服务器我要open中url地址文件中的数据,想让服务器将文件数据返回给客户
第四步:判断状态和状态码,通过这两个判断服务器是不是接收到数据和数据已经返回给我们用户了
第五步:如果状态和状态码没有问题,我们就可以利用拿到的数据开始做事情了

老师我理解的对吗

老师,代码好像有先后顺序,判断状态和状态码要写在open和send的前面这是因为什么呢,具体的书写顺序是?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

5回答
qwertyuiopl 2020-11-27 09:55:52

其实你可以理解为一种现象,可以参考下这个帖子里说的 https://blog.csdn.net/weixin_44226263/article/details/103016186?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.control  

下图里,是对于readystate的另一种描述,更简单通俗

http://img1.sycdn.imooc.com//climg/5fc05b2609b2bdae00000000.jpg

所以onreadystatechange要在open、send方法之前绑定好,这样才能从头监听。这种写法已经成为一种约定俗成的写法了,所以在实际开发中,就按照这个方法使用吧!

http://img1.sycdn.imooc.com//climg/5fc05b2609b2bdae05240153.jpg


提问者 母鸡阿 2020-11-26 19:16:58

老师为什么把open和send放后面才能监听到1呢还是不理解

  • Hfzz #1

    你可以在老师的回答下回复,不然老师可能收不到你的追问~

    2020-11-26 19:22:00
  • 同学你好,可以参考楼上同学的解答,如果还有问题可以再次提问,另外,建议在老师的回答下点击回复进行提问,这样不容易漏掉追问哟。祝学习愉快!

    2020-11-29 18:33:42
好帮手慕码 2020-11-26 18:44:07

同学你好,​readyState存有五种,XMLHttpRequest 的状态:

  • 0: 请求未初始化

  • 1: 服务器连接已建立

  • 2: 请求已接收

  • 3: 请求处理中

  • 4: 请求已完成,且响应已就绪

所以,这里1的状态就是 服务器连接已建立。

祝学习愉快~

提问者 母鸡阿 2020-11-26 16:18:03

改变1是什么呢

好帮手慕码 2020-11-26 16:15:46

同学你好,解答如下:

1、理解是正确的。简单来说是如下五步:

  • 创建一个XMLHttpRequest异步对象

  • 设置请求方式和请求地址

  • 用send发送请求

  • 监听状态变化

  • 接收返回的数据

2、判断状态和状态码要写在open和send的前面,是为了绑定一个监听事件,当请求的readyState改变时触发,也会监听到改变1的状态(调用send之前)。如果放在open或者send方法后面监听不到改变1的状态

http://img1.sycdn.imooc.com//climg/5fbf61b809fa0e8008850356.jpg

http://img1.sycdn.imooc.com//climg/5fbf61bf096f466a00850091.jpg

所以一般推荐放在open方法前面。

3、具体的书写顺序,可以参考视频中写法哦。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师