AJAX的介绍及使用

什么是Ajax?

是指一种创建交互式网页应用的网页开发技术。

  • AJAX:Asynchronous Javascript And XML(异步JavaScript和XML)

  • 交互:这里的交互指客户端和服务器的数据是可以相互传递和使用的。

  • XML:一种类似于HTML的标记语言,可以将数据结构化。

  • 异步:异步指程序可以同时执行,同步指程序需要按照顺序执行。

特点:

再不提交整个页面的情况下,实现页面的局部刷新;

AJAX产生的背景:

以前做数据交互的时候,大家通常选择使用表单的方式提交数据,表单提交这种方式,默认的时候会由当前页面跳转到action页面,所以用户体验及其糟糕,所以需要想办法让当前页面,不跳转的同时把数据传递过去,把服务器响应的内容拿回来。

AJAX解决的问题:

指不刷新当前页面,把某些数据传递给服务器,把某些数据从服务器拿回客户端。

注意:AJAX必须依赖www服务执行,即使用http协议来运行。

ajax 的使用

创建Ajax核心对象

var xhr = new XMLHttpRequest();

建立连接

// 语法:
xhr.open("get", url, true);

open() 方法中:

  • 第1个参数指请求的发送方式,值为get或post。

  • 第2个参数指请求的url路径。

  • 第3个参数指请求是异步还是同步,如果写true表示异步(默认true),写false表示同步。

发起请求

// 语法:
xhr.send();

如果是get方式发送请求,send()命令中不用写任何参数

传递的数据可以写在url中,服务器php文件用$_GET["参数名"]接收。

接收响应

// 异步时需要通过 onreadystatechange 监听
// 指如果xhr对象的预备好的状态发生了变化时,触发函数。
xhr.onreadystatechange = function(){
    if(xhr.readyState == 4 && xhr.status == 200){
        alert(xhr.responseText);
    }
}
// 请求状态4:响应已完成;您可以获取并使用服务器的响应了。
// HTTP状态码200:ok,页面正确打开,并得到完整的响应内容。
  • onreadystatechange指本次ajax请求的状态发生改变时所触发的事件

  • readyState 指请求状态

0:请求未初始化(还没有调用 open())。1:请求已经建立,但是还没有发送(还没有调用 send())。2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。4:响应已完成;您可以获取并使用服务器的响应了。

  • status 指http状态(常用的http状态码)

200:ok,页面正确打开,并得到完整的响应内容。301:被请求的资源已永久移动到新位置302:请求的资源临时从不同的 URI响应请求304:缓存404:页面不存在。500:常指后端代码发生错误503:由于临时的服务器维护或者过载,服务器当前无法处理请求。

  • responseText指接收到的响应结果

发送get方式ajax

通过url携带querystring参数传递数据

        let xhr = new XMLHttpRequest();
        xhr.open("get","/get?name=zhangsan&age=20",true);
        xhr.send();
        xhr.onload = function(){
            console.log(xhr.responseText);
        }

发送post方法ajax

        let xhr = new XMLHttpRequest();
        xhr.open("post","/post",true);
        xhr.setRequestHeader("content-type","application/x-www-form-urlencoded")
        xhr.onload = function(){
            console.log(xhr.responseText);
        }
        let str = "name=123&age=20";
        xhr.send(str);

发送xml数据

发送xml数据

  • xml数据-XML 可扩展标记语言。

  • XML 被设计用来传输和存储数据。

  • XML和HTML类似,不同的是HTML中都是预定义标签,而XML中没有预定义标签,全都是自定义标签,用来表示一些数据。

  • xml数据格式

 let xml = `<?xml version="1.0" encoding="utf-8" ?>
                <books>
                    <nodejs>
                        <name>nodejs</name>
                        <price>$32</price>
                    </nodejs>
                    <vuejs>
                        <name>vuejs</name>
                        <price>$32</price>
                    </vuejs>
                </books>
                `

ajax请求xml数据

        let xhr = new XMLHttpRequest();
        xhr.open("get","/xml",true);
        xhr.onload = function(){
            console.log(xhr.responseXML);
           let res =  xhr.responseXML.querySelector("nodejs name");
           console.log(res.innerHTML);
        }
        xhr.send();

ajax超时及取消

  • 设置ajax超时时间 : xhr.timeout=4000

  • 取消ajax发送 : xhr.abort()

jq里的ajax

$ajax方法

ajax() 方法通过 HTTP 请求加载远程数据,该方法是 jQuery 底层 AJAX 实现

ajax方法的参数是一个对象,代表对当前ajax的配置

常见的配置项:url、type、dataType、data、contentType、cache、success等

$.get方法

$.get(url, [data], [callback], [type])

url:请求的URL地址。

data:请求携带的参数。

callback:载入成功时回调函数。

type:设置返回内容格式,xml, html, script, json, text, _default。

$.post方法

$.post(url, [data], [callback], [type])

url:请求的URL地址。

data:请求携带的参数。

callback:载入成功时回调函数。

type:设置返回内容格式,xml, html, script, json, text, _default。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值