AJAX基础

本文详细介绍了AJAX(异步JavaScript和XML)的基本概念,包括异步通信的工作原理和两种主要实现方式:原生JavaScript和jQuery。原生JS中,通过XMLHttpRequest对象创建GET和POST请求,设置回调函数处理响应数据。jQuery则提供了.ajax(), .get()和.post()等简洁的API来实现相同功能。这些方法简化了异步请求的编写,使得客户端能够实现不阻塞的交互体验。

概念

ASynchronous JavaScript And XML —— 异步的JavaScript和XML

异步和同步: 客户端和服务器端相互通信的基础上

  • 客户端必须等待服务器端的响应。在等待的期间客户端不能做其他操作。
  • 客户端不需要等待服务器端的响应。在服务器端处理请求的过程中,客户端可以进行其他的操作。

实现方法

原生的JS实现方法

GET请求

<script>
    document.querySelector('input').onclick = function(){
    //查找input标签并添加点击事件
        var xhr = new XMLHttpRequest();
        //创建异步对象
        xhr.open('get','URL?name='+value);
        //添加请求方式为get,URL为请求的地址(get请求数据写在URL后面)
        xhr.onreadystatechange = function(){
        //设置回调函数
            if (xhr.readyState==4&&xhr.status==200) {
            //readyState==4表示请求完成,数据都获取到了,status==200表示请求的页面一定存在
             console.log(xhr.responseText);
             //获取数据
                }
            }
        xhr.send(null);
        //请求发送主体,get请求为空或者写null
    }
</script>

POST请求

<script>
    document.querySelector('input').onclick = function () {
        //查找input标签并添加点击事件
        var xhr = new XMLHttpRequest();
        //创建异步对象
        xhr.open('post', 'URL');
        //添加请求方式为post,URL为请求的地址
        xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        //设置请求头(将Content-type的值设置为application/x-www-form-urlencoded才能实现提交数据)
        xhr.onreadystatechange = function () {
            //设置回调函数
            if (xhr.readyState == 4 && xhr.status == 200) {
                //readyState==4表示请求完成,数据都获取到了,status==200表示请求的页面一定存在
                console.log(xhr.responseText);
                //获取数据
            }
        }
        xhr.send('name='+value);
        //请求发送主体,post请求数据写在发送主体中,若无发送的数据则为null
    }
</script>

JQeury实现方法

  1. **.ajax()∗∗语法:‘.ajax()** 语法:`.ajax().ajax({键值对});`
$.ajax({
	url:"xxx", // 请求路径
	type:"POST", //请求方式
	//data:"username=xxx&age=xxx",//请求参数
	data:{"username":"xxx","age"=xxx},
	success:function (data){
		alert(data)
	},//响应成功后的回调函数
	error:function(){
		alert("出错了!")
	},//如果请求响应出现错误,会执行的回调函数
	dataType:"text"//设置接收到的响应数据的格式
});
  1. **.get()∗∗语法:‘.get()** 语法:`.get().get(url,[data],[callback],[type])`
    参数:
  • url:请求路径
  • data:请求参数
  • callback:回调参数
  • type:响应结果的类型
  1. **.post()∗∗语法:‘.post()** 语法:`.post().post({url,[data],[callback],[type]});`
    参数:
  • url:请求路径
  • data:请求参数
  • callback:回调参数
  • type:响应结果的类型
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FFFPAG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值