美文网首页
Ajax异步请求

Ajax异步请求

作者: 小伙子太认真 | 来源:发表于2019-02-21 00:43 被阅读0次

    最近看到一个挺搞笑的,分享一下。

    即兴赋诗一首,哈哈哈。

                      《规范代码》

                        代码千万行,

                        注释第一行。

                        代码不规范,

                        同事两行泪。

    这个梗来自于----《流浪地球》。

    步入我们的正题Ajax,这个话题也是面试的一个热点。我讲的是原理,不喜欢讲第三方库,因为第三方库是为了实战的方便而已,对于我们学习没有太多的帮助。反而会形成一种依赖性。

    这篇文章的主题思路就是下面这几个问题,围绕这几个问题作为中心,有其他问题再去横向拓展。

    1、为什么要使用ajax?

    2、HTTP请求

    3、HTTP状态码是什么?

    4、创建ajax的步骤

    第一个问题:为什么要使用ajax?

    回到没有没有异步请求的世界里,你会发现很多问题。比如写简历需要写到全部信息完全好了才提交,提交了之后才能发现有没有问题。有了ajax之后的对比是在我们填写资料的同时,就会在我们不知觉的同时提交数据验证了。这就是我们有了ajax之后的世界。

    第二个问题:什么是HTTP请求?

    因为ajax是与服务器端进行数据交互的,所以就要用到我们的HTTP请求,一个完整的HTTP请求过程,通常有7个步骤。

    1、建立TCP链接

    2、由Web浏览器向服务器发送请求命令。

    3、Web浏览器发送请求头信息。

    4、Web服务器作出应答

    5、Web服务器发送应答头信息

    6、Web服务器向浏览器发送数据

    7、Web服务器关闭TCP链接。

    HTTP请求一般分成下面四部分

    1、HTTP请求的方法:GET 或POST

    2、正在请求的url地址

    3、请求头

    4、请求体

    第三个问题:HTTP状态码是什么?

    1xx:信息类,表示服务器收到Web浏览器的请求

    2xx:成功,表示请求成功  。常见的有200

    3xx:重定向,表示请求没有成功

    4xx:客户端错误,常见有404 NOT  Found

    5xx:服务器错误

    第四个问题:创建ajax的步骤

    1、就是new 一个XMLHttpRequest对象

    这里兼容性写法我就不说了。

    可以参考这里的:Ajax总结篇 - 简书

    2、准备请求

    request.open(method,url,async);

    open方法有三个参数

    第一个参数GET或POST

    第二个参数是要作为请求发送目标的URL。

    第三个参数是一个布尔值,不填默认为true就是异步的意思。

    3、发送请求

    一般GET方法发送的请求的话send参数为空或者是null就行

    4、处理响应

    onreadystatechange :当处理过程发生变化的时候执行下面的函数

    思考一个问题:JSON.parse()的作用是什么?有没有其他方法? 发送完之后就需要上面这两个步骤,用一个事件监听,是否请求完成还有HTTP状态码就行,然后在请求完成的时候做些事情

    responseText:获得字符串的响应数据

    responseXML:获得XML格式的响应数据(这个很少用了)

    status和statusText:以文字和文本形式返回HTTP状态码。

    readyState属性,下面数字代表的含义

    0:请求未初始化,open没有调用

    1:服务器连接已建立,open已经调用

    2:请求已接收,接收到头信息

    3、请求处理中,接收到主体信息

    4:请求完成(前面的几个可以不记,哈哈,这个必须理解)

    上面写的例子是GET方法,下面来一个post方法

    多了一个步骤 这个步骤一定要写在open和send之间,表示设置发送的数据类型。

                                    本文如有侵权,联系作者删除

    相关文章

      网友评论

          本文标题:Ajax异步请求

          本文链接:https://www.haomeiwen.com/subject/etnkyqtx.html