ajax的原理是,ajax原理

1.什么是ajax

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),

2.ajax原理

75fb39e3d92047c0d8e0fa4782b508b4.png

每个新的浏览器都有内置的ajax引擎

第一步:使用js获取浏览器内置的ajax引擎(XMLHttpRequest对象)

第二步:通过ajax引擎确定请求路径,参数,方式,并把回调函数告诉ajax引擎

第三步:通知ajax发送请求(ajax引擎会在不刷新浏览器地址栏的情况下,发送请求)

第四步:服务器获取参数

第五步:服务器处理请求参数(增删改查)

第六步:服务器响应数据给浏览器

ajax引擎获得服务器响应的数据,通过执行js的回调函数,将数据传递给浏览器页面

第七步:通过设置给ajax引擎的回调函数获得服务器响应数据

第八步:使用js在指定的位置,显示响应数据,从而局部修改页面的数据,达到局部刷新的目的

3.javascript ajax

发送get请求

function sendGet(){

1 获得ajax引擎

var xmlhttp = new XMLHttpRequest();

2设置回调函数

xmlhttp.onreadystatechange = function(){

if(xmlhttp.readyState == 4){ //服务器响应完成,数据加载成功 ,可能正常,也可能服务器异常

if(xmlhttp.status == 200){ //处理服务器响应正常数据

//获得数据并输出

var txt = xmlhttp.responseText;

alert(txt);

}

}

};

3 确定请求路径

参数1:请求方式

参数2:请求路径

xmlhttp.open("GET", "地址?参数=值&参数=值");

4 发送请求

参数body :请求体,get请求没有请求体,一般建议null

xmlhttp.send(null);

}

发送post请求 注意post请求比get请求多一个请求头

function sendPost(){

//1 获得ajax引擎

var xmlhttp = new XMLHttpRequest();

2 设置回调函数

xmlhttp.onreadystatechange = function(){

if(xmlhttp.readyState == 4){ //服务器响应完成,数据加载成功 ,可能正常,也可能服务器异常

if(xmlhttp.status == 200){ //处理服务器响应正常数据

//获得数据并输出

var txt = xmlhttp.responseText;

alert(txt);

}

}

};

//3 确定请求路径/

// * 参数1:请求方式

// * 参数2:请求路径

xmlhttp.open("POST", "地址");

// * 需要设置请求头 , 向一个打开但未发送的请求设置或添加一个 HTTP 请求。

xmlhttp.setRequestHeader("content-type", "application/x-www-form-urlencoded");

//4 发送请求

// * 参数body :请求体,post请求参数在请求体中

xmlhttp.send("参数=值&参数=值");

}

4.XMLHttpRequest浏览器兼容问题,这是因为老版本的浏览器

function sendPost(){

//1 获得ajax引擎

var xmlhttp;

if (window.XMLHttpRequest){//谷歌和火狐

xmlhttp=new XMLHttpRequest();

} else if (window.ActiveXObject) {//IE

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}

}

在w3cschool文档中有写

65e9b0cc0703f57e1bd0e08102f74932.png

b4c5c96d53617b55f102bb9c2097d9bd.png

e1ce9a8126868997f841b6aeed35c972.png

d2034cbf88871a9c94604a27471e9963.png

5.jquery ajax

//发送get请求

function sendGet(){

// $.get() 提供工具方法,用于发送ajax,请求方式get

// * 参数1:请求路径

// * 参数2:请求参数

// * 参数3:回调函数,需要设置一个变量接收数据

$.get(url,params , function(data){

alert(data);

});

}

//发送post请求

function sendPost(){

$.post(url,params , function(data){

alert(data);

});

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值