什么是Ajax以及ajax请求的步骤[通俗易懂]

什么是Ajax以及ajax请求的步骤[通俗易懂]什么是Ajax以及ajax请求的步骤1.Ajax是什么?AsynchronousJavaScript&XML。Ajax是web开发的一种技术。2.Ajax请求的步骤(1)创建`XMLHttpRequest`对象,也就是创建一个异步调用对象;(2)创建一个新的`HTTP`请求,并指定该`HTTP`请求的方式、`URL`及验证信息;(3)设置响应`HTTP`请求状…

大家好,又见面了,我是你们的朋友全栈君。

什么是Ajax以及ajax请求的步骤

1.Ajax是什么?

Asynchronous JavaScript & XML。Ajax是web开发的一种技术。

2.Ajax请求的步骤

(1)创建`XMLHttpRequest`对象,也就是创建一个异步调用对象;

(2)创建一个新的`HTTP`请求,并指定该`HTTP`请求的方式、`URL`及验证信息;

(3)设置响应`HTTP`请求状态变化的函数;

(4)发送`HTTP`请求;

(5)获取异步调用返回的数据;

(6)使用JavaScript和DOM实现局部刷新。

3.XMLHttpRequest对象

(1)对象类型的API;

(2)在浏览器环境使用;

(3)用于客户端和服务端数据的传递和接收;

(4)用于请求XML数据(JSON/TEXT)。

4.readyState状态码

0:请求未初始化

1:服务器连接已建立

 2:请求已接收

 3:请求处理中

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

5.http状态码(status)

200:(成功)

403:(禁止)服务器拒绝请求

404:(未找到)服务器找不到请求的页面

408:(请求超时)服务器等候请求发生超时

500:(服务器内部错误)服务器遇到错误,无法完成请求

6.onload和onreadystatechange

当onload执行时readyState只可能为4

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ajax</title>
</head>

<style>
    html {
        font-family: Arial, Helvetica, sans-serif;
        padding: 10px 20px;
    }
</style>

<body>
    <h3>Ajax是什么?</h3>
    <p>Asynchronous JavaScript & XML。Ajax是web开发的一种技术。</p>

    <h3>Ajax请求的步骤</h3>
    <p>
        (1)创建`XMLHttpRequest`对象,也就是创建一个异步调用对象;
        <br /> (2)创建一个新的`HTTP`请求,并指定该`HTTP`请求的方式、`URL`及验证信息;
        <br /> (3)设置响应`HTTP`请求状态变化的函数;
        <br /> (4)发送`HTTP`请求;
        <br /> (5)获取异步调用返回的数据;
        <br /> (6)使用JavaScript和DOM实现局部刷新。
    </p>

    <h3>XMLHttpRequest对象</h3>
    <p>
        (1)对象类型的API;
        <br />(2)在浏览器环境使用;
        <br />(3)用于客户端和服务端数据的传递和接收;
        <br />(4)用于请求XML数据(JSON/TEXT)。
    </p>

    <h3>readyState状态码</h3>
    <p>
        0:请求未初始化
        <br /> 1:服务器连接已建立
        <br /> 2:请求已接收
        <br /> 3:请求处理中
        <br /> 4:请求已完成,且响应已就绪
    </p>

    <h3>http状态码(status)</h3>
    <p>
        200:(成功)
        <br /> 403:(禁止)服务器拒绝请求
        <br /> 404:(未找到)服务器找不到请求的页面
        <br /> 408:(请求超时)服务器等候请求发生超时
        <br /> 500:(服务器内部错误)服务器遇到错误,无法完成请求
    </p>
    <button>ajax请求</button>
    <h2></h2>

    <script>
        document.querySelector("button").addEventListener("click", getAjax);

        function getAjax() {
            //1.创建XMLHttpRequest对象
            let xhr = new XMLHttpRequest();
            //open(type,url,async)
            xhr.open("GET", "http://jsonplaceholder.typicode.com/posts/1", true);
            console.log(xhr.readyState); //1

            //进程
            xhr.onprogress = function() {
                console.log(xhr.readyState); //3
            }

            //两种请求方式onload/onreadystatechange
            //onload
            // xhr.onload = function() {
            //     console.log(xhr.readyState); //4
            //     document.querySelector("h2").innerHTML = JSON.parse(this.responseText).body;
            // };
            //onreadystatechange
            xhr.onreadystatechange = function() {
                console.log(xhr.readyState);
                console.log(xhr.status);
                if (xhr.readyState == 4 && xhr.status == 200) {//修改dom
                    document.querySelector("h2").innerHTML = JSON.parse(this.responseText).title;
                } else if (xhr.status = 404) {
                    document.querySelector("h2").innerHTML = xhr.statusText;
                }
            };

            //发送请求
            xhr.send();
        }
    </script>
</body>

</html>

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/145404.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • poj 2762 Going from u to v or from v to u? (推断它是否是一个薄弱环节图)

    poj 2762 Going from u to v or from v to u? (推断它是否是一个薄弱环节图)

  • docker安装elasticsearch(最详细版)[通俗易懂]

    docker安装elasticsearch(最详细版)[通俗易懂]docker安装elasticsearch1.设置max_map_count不能启动es会启动不起来查看max_map_count的值默认是65530cat/proc/sys/vm/max_map_count重新设置max_map_count的值sysctl-wvm.max_map_count=2621442.下载镜像并运行#拉取镜像dockerpullelasticsearch:6.5.4#启动镜像dockerrun–nameelasticsearch-d

  • 协同过滤算法

    协同过滤算法###1.协同过滤算法协同过滤(CollaborativeFiltering)推荐算法是最经典、最常用的推荐算法。所谓协同过滤,基本思想是**根据用户之前的喜好以及其他兴趣相近的用户的选择

  • C++ vector初始化_vector>初始化

    C++ vector初始化_vector>初始化#include<iostream>#include<string>#include<vector>#include<deque>#include<list>#include<forward_list>#include<string>#include<array>usingnamespacestd;#defineLENGTH10typedefintTYPE;.

  • 双线性插值(超级易懂的)「建议收藏」

    双线性插值(超级易懂的)「建议收藏」双线性插值简介在两个方向分别进行一次线性插值(首先在一个方向上使用线性插值,然后再在另一个方向上使用线性插值执行双线性插值。尽管每个步骤在采样值和位置上都是线性的,但是插值总体上不是线性的,而是在采样位置上是二次的。)作用一般用于重新采样图像和纹理。计算四个周围纹理像素的属性(颜色,透明度等)的加权平均值,并将其应用于屏幕像素。(简单来说,我要求一个已知坐标的像素值,先去找他四个周围已…

  • Ant安装配置

    Ant安装配置先在http://ant.apache.org/下载Ant,例如我下载的是最新版的apache-ant-1.7.1-bin.zip文件,然后解压缩至E:/apache-ant-1.7.1,添加环境变量ANT_HOME=E:/apache-ant-1.7.1,在PATH变量中添加%ANT_HOME%/bin;,Ant就算是配置好了。环境:WindowsXP

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号