AJAX基础

AJAX基础


一、HTTP协议

1、概念

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议

<form action="#" method="post" enctype="application/x-www-form-urlencoded">
    <input type="text" name="user">
    <input type="password" name="pwd">
    <input type="submit" value="提交">
</form>
<script>
    /*
    B/S browser/server
    C/S client/server

    HTTP协议:
        1.请求协议
            浏览器向服务器发送请求的时候使用

            请求行:访问的路径,主机,协议版本
            请求头:浏览器的一些信息
            请求体:get请求没有请求体
                   post请求才有请求体

            !!! get 和 post 的区别
                get请求:
                    没有请求体。 get请求如果想向服务器传递数据,必须把要传递的数据放入到  **url** 中。
                    请求数据是键值对的形式,建和值用=连接

                post请求:
                    有请求体。而且我们的数据都是通过请求体提交的数据

        2.响应协议
            服务器向浏览器响应的时候使用

            响应行
            响应头
            响应体(响应的内容)

            响应码:
                200 ok
                304 Not Modified
                404 资源没找到
                500 服务器问题
    */
</script>

二、Ajax基础

    传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面,在加载新的网页的过程中,用户会有一个等待。降低了用户体验。
局部更新:
    AJAX的出现就可以让网页进行部分更新。

异步和同步:
    Ajax的全称是Asynchronous JavaScript+XML ,Ajax不是一个技术,它实际上是几种技术,每种技术都有其独特这处,合在一起就成了一
个功能强大的新技术。Ajax结合了异步技术、XML以及JavaScript等编程技术,可以让开发人员构建基于Js技术的Web应用,并打破了使用页面重载
的惯例。 Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法。这样,Web页面不用打断交互流程进行重新加载,就可以动态地更新。使
用Ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面。

    Ajax刚出生的时候,用的比较多的数据格式是XML,后来JSON数据格式更多的去替换了XML格式的数据。

Ajax的使用方法

▻  先创建需要请求的页面. (test.html)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
测试!!!
</body>
</html>
▻  Ajax请求(test.html)的方法
<div id="box"></div>
<script>
//第一步:创建XMLHttpRequest对象
    var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");

//第二步:调用xhr的open  仅仅是准备一些信息,但是还没有实际的发送请求出去
    //参数1:请求方法,一般是get或post   参数2:请求url   参数3:是否为异步,默认true,表示异步
    xhr.open("GET","test.html");

//第三步:监听请求状态
    //xhr.onreadystatechange监听请求状态,根据状态来确定数据获得之后要做的事情
    xhr.onreadystatechange = function () {
        console.log(xhr.readyState);
        /*
         *  xhr.readyState的值保存了xhr的状态。一共有5种状态,每个状态用1个整数来表示
         *      0 未初始化。对象new出来了,但是还没有调用open方法
         *      1 启动。 已经调用open,但是还没有调用send方法
         *      2 发送。 已经send方法,但是还没有接收到相应
         *      3 接收。 已经开始接收数据,但是还没有完全接收
         *      4 完成。 已经完全接收数据
         *
         *      作为开发者,我们一般只关注 **第4种** 状态
         *
         */
        if(xhr.readyState == 4){  //这次响应完成
            console.log(xhr.status);//200   这次响应的内容是OK的
            if(xhr.status == 200){
                console.log(xhr.responseText);  //输出这次响应的内容
                box.innerHTML = xhr.responseText;  //页面中输出这次响应的内容
            }
        }
    }

//第四部:发送请求,参数表示传递到服务器的数据。get给个null即可,post请求的时候,传递键值对数据
    xhr.send(null);
</script>

请求json数据

▻  先创建需要请求的json数据. (data.json)
{
  "name" : "Jack",
  "age" : 20,
  "sex" : "man"
}
▻  Ajax请求(data.json)数据的方法
<script>

    var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");

    xhr.open("GET","data.json");

    xhr.onreadystatechange = function () {
        if(xhr.readyState == 4){
            if(xhr.status == 200){
                var obj = JSON.parse(xhr.responseText);
                console.log(obj);  //{name: "Jack", age: 20, sex: "man"}
            }
        }
    }

    xhr.send(null);

   /*
    *  json JavaScript Object Notation  是一种纯文本数据格式,而且是跨平台的
    *
    *   json对象: 其实就是js对象字面量去掉方法
    *       {
    *          "name" : "Jack",
    *           "age" : 20,
    *      }
    *
    *  json数组:[ ]
    *      可以存json对象和字符串
    *
    */
</script>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值