原生Ajax和jQuery的Ajax

本文详细介绍了AJAX技术,一种用于创建快速动态网页的技术,通过在后台与服务器进行少量的数据交换,使网页能够异步更新。文章讲解了原生AJAX的实现步骤,包括创建异步对象、发送请求、设置回调函数等,并探讨了跨域问题及其解决方案,如JSONP和CORS。同时,介绍了jQuery中的AJAX使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概要

AJAX是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量的数据交换,AJAX可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

原生AJAX

原生ajax的五个步骤

<script>
	var xhr = new XMLHttpRequest(); //创建一个异步对象
	xhr.open("Get""test.ashx"true);//Get方式括号中的三个参数分别为:1.发送请求的方式 2.样请求的页面 3.是否异步
	//xhr.open("post","test.ashx",true);
	//xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); Post方式发送数据
	//这个回调函数主要用来检测服务器是否把数据返回给异步对象
	xhr.setRequestHeader("If-Modified-Since""0");//设置浏览器不使用缓存
	xhr.onreadystatechange = function () {
		if (xhr.readystate == 4 && xhr.status == 200) {
			console.log(xhr.responseText);//服务器返回的Response数据
		}
	}
	xhr.send();//异步对象发送请求
</script>

readyState:服务器响应的状态信息
0:请求未初始化。对象已经创建,但还未初始化,即还没调用open方法;
1:服务器连接已建立。对象已经创建并初始化,但还未调用send方法;
2: 请求已接收。已经调用send 方法,但该对象正在等待状态码和头的返回;
3:请求处理中。已经接收了部分数据,但还不能使用该对象的属性和方法,因为状态和响应头不完整;
4: 请求已完成,且响应已就绪。所有数据接收完毕
status返回当前状态码
1xx-:(临时响应)
表示临时响应并需要请求者继续执行操作的状态代码。
2xx-: 服务器成功返回网页
3xx -:重定向)
表示要完成请求,需要进一步操作。
4xx -: (请求错误)
这些状态代码表示请求可能出错,妨碍了服务器的处理。
5xx-:服务器错误)
这时候可能是后台的数据发生错误

原生ajax解决跨域

要了解什么是跨域?我们首先要知道什么是同源。

同源策略

同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的关键的安全机制。

同源即:协议名和端口号以及主机名都相同。
当协议名主机名以及端口号有一个或多个不相同,就会违背同源策略,请求无法成功,这就需要进行跨域请求

解决跨域请求的方法

1.JSONP解决跨域

实现原理: 
动态创建一个script标签,由于script标签的src属性带有跨域的功能,所以利用这一特性,可以实现跨域。

<script type="text/javascript">
       function callback(data){
              console.log(data); 
       }
</script>
<script src="data.php"></script>
2.CORS(跨域资源共享)

用php进行的设置,header{"Access-Control-Allow-Origin: "},“”号表示允许任何域向我们的服务端提交请求

	header("Access-Control-Allow-Origin:*"); 

jQuery的ajax

<script>
      $.ajax({
        type: "post",
        //type : "get",
        data: { 
          "name":"",
          "age":"",
         },
        url: "../../api/addCategory.php",

        // 是响应体成功时执行的函数
        success: function (obj) {
          console.log(obj);

        },
        dataType: "json",
        // 请求发生错误的时候  出发的函数
        error: function () {
          console.log("error");
        }
      })
    })
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值