关于异步请求AJAX的具体解释
1,异步请求的方法步骤:
1,推断当前用户支持的浏览器类型
XMLHttpRequest:推断是否支持非IE浏览器,相应的创建方法:xmlhttp = new XMLHttpRequest();
window.ActiveXObject:推断是否支持IE浏览器,相应的创建方法:xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
2,开辟连接创建路径
xmlhttp.open(參数一,參数二,參数三);
參数一:请求的方式get post
參数二:请求路径
參数三:表示是否是异步请求,true(是),false(不是)
3,创建绑定方法推断请求的状态
onreadystatechange:假设每一次请求的状态改变的时候就会触发该函数
3-1推断是否是状态4和连接正常200
凝视:readyState推断请求状态是否到4
status:推断响应的状态码是否正常
3-2,获取后台传过来的数据responseText
var msg = xmlhttp.responseText;
3-3,把数据写入指定的容器内
document.getElementById('span').innerHTML=decodeURI(msg,"UTF-8");
4,发送请求
xmlhttp.send(參数);get请求时參数为null,post请求时
异步请求的5个状态:
0表示请求未连接
1代表与server已连接
2代表server已接受数据
3正在处理数据
4处理完毕
2,异步请求方法
<script type="text/javascript">
var xmlhttp;
function getMsg(){
//支持非IE浏览器
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else if(window.ActiveXObject){//支持IE浏览器
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//get请求
//xmlhttp.open("get","AjaxServlet?text=异步请求&num="+Math.random(),true);
//post请求
xmlhttp.open("post","AjaxServlet",true);
//200代表请求正常,404:路径错误,500:服务端代码有错误
//onreadystatechange:假设每一次请求的状态改变的时候就会触发该函数
xmlhttp.onreadystatechange = function(){
//readyState推断请求状态是否到4
//status:推断响应的状态码是否正常
if(xmlhttp.readyState==4 && xmlhttp.status==200){
//获取后台传过来的数据responseText
var msg = xmlhttp.responseText; document.getElementById('span').innerHTML=decodeURI(msg,"UTF-8");
}
}
//若为post请求时要设置请求头信息
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
//发送请求
xmlhttp.send("text=sa123&num=123");
//若为get请求时
//xmlhttp.send(null);
}
</script>
3,自己封装的异步请求的类(Ajax.js)
/**
* 封装Ajax异步请求的方法
*/
function $_Ajax(method,url,data,type,callback){
/**
* method:请求类型(get,post)
* url:请求路径
* data:请求參数
* type:返回数据类型(text,xml)
* callback:回调函数
*/
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else if(window.ActiveXObject){
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}else{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
xmlhttp.open(method, url, true);
/**
* 由于不同的页面调用该方法的处理的方式不同
* 所以要传一个回调函数,谁调用谁去实现
*/
xmlhttp.onreadystatechange=function(){
//假设请求完毕而且没有错误就运行该if语句中的代码
if(xmlhttp.readyState==4 && xmlhttp.status==200){
//推断用户要求返回数据类型
if(type=="text"){
var text = xmlhttp.responseText;
//回调函数
callback(text);
}else if(type=="xml"){
var xml = xmlhttp.responseXML;
callback(xml);
}
}
}
//假设用户的请求是post请求
if(method=="post"){
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
}
//发送请求
xmlhttp.send(data);
}
关于异步请求AJAX的具体解释的更多相关文章
- [js开源组件开发]network异步请求ajax的扩展
network异步请求ajax的扩展 在日常的应用中,你可能直接调用$.ajax是会有些问题的,比如说用户的重复点击,比如说我只希望它成功提交一次后就不能再提交,比如说我希望有个正在提交的loadin ...
- 异步请求Ajax(取得json数据)
异步请求Ajax 没有学习Ajax之前请求数据的时候都是整个页面全部刷新了一次,也就是每次请求都会重新请求所有的资源.但是在很多时候不需要页面全部刷新,仅仅是需要页面的局部数据刷新即可,此时需要发送异 ...
- 异步请求Ajax
AJAX:Asynchronous JS And XML,包括HTML.CSS.JS.DOM.XML.JSON等,客户端技术范畴.主要目标:发起异步请求/响应,实现页面内容的局部刷新,提高浏览体验:实 ...
- JavaScrpit中异步请求Ajax实现
在前端页面开发的过程中,经常使用到Ajax请求,异步提交表单数据,或者异步刷新页面. 一般来说,使用Jquery中的$.ajax,$.post,$.getJSON,非常方便,但是有的时候,我们只因为需 ...
- [异步请求]ajax、axios、fetch之间的详细区别以及优缺点
1.jQuery ajax $.ajax({ type: 'POST', url: url, data: data, dataType: dataType, success: function () ...
- jQuery异步请求ajax()之complete参数详解
请求完成后回调函数 (请求success 和 error之后均调用).这个回调函数得到2个参数:XMLHTTPRequest) 对象和一个描述请求状态的字符串("success", ...
- 异步请求 ajax的使用详解
https://blog.csdn.net/happyaliceyu/article/details/52381446 可以说是很详细了,赞
- 黑马学习AJAX jQuery发送异步请求 $.ajax() $.post() $.get()是在调用方法而不是定义方法
- ajax异步请求302分析
1.前言 遇到这样一种情况,打开网页两个窗口a,b(都是已经登录授权的),在a页面中退出登录,然后在b页面执行增删改查,这个时候因为授权原因,b页面后端的请求肯定出现异常(对这个异常的处理,进行内部跳 ...
随机推荐
- python拼接
拼接: name=zhuhuan age=23 salary=333 info=''' ----- info of %s----- age:%s name:%s salary:%s %(name,ag ...
- Mac Xnip 截图软件快捷键设置
点击 Shortcut 后输入你需要的截图快捷键
- psql 工具详细使用介绍
psql 介绍 psql 是 PostgreSQL 中的一个命令行交互式客户端工具, 它允许你交互地键入 SQL 命令,然后把它们发送给 PostgreSQL 服务器,再显示 SQL 或命令的结果. ...
- c++ 中的slipt实现
来自 http://www.cnblogs.com/dfcao/p/cpp-FAQ-split.html http://blog.diveinedu.com/%E4%B8%89%E7%A7%8D%E5 ...
- knockout,change事件
knockout,change事件 不知道为啥公司要用ko,就这样吧 大概需求,动态绑定的预算类别,然后预算类别切换时候,根据预算类别中的value去找上级编号.
- xml读取 避开并发(xml的一些操作)
很多地方读取文件可能会出现并发现象 处理: 使用FileMode.Open, FileAccess.Read, FileShare.ReadWrite 避开并发 public static List& ...
- php中session的生成机制、回收机制和存储机制探究
1.php中session的生成机制 我们先来分析一下PHP中是怎么生成一个session的.设计出session的目的是保持每一个用户的各种状态来弥补HTTP协议的不足(无状态).我们现在有一个疑问 ...
- 【2019.3.2】NOI 模拟赛
题目 题解(有些小错误) H老爷的简短题解 请无视题目 $pdf$ 的第二行,信那句话的人都已经上清华了 听说大老爷切了 $250+$ 分,然后发现是两个人分着写三道题的,然后第一题还流假了…… $x ...
- NOIP2015提高组T2 洛谷P2661 信息传递
题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一 ...
- 【BZOJ1030】文本生成器(容斥原理,AC自动机,计数DP)
题意:给出n个字符串,求长为m至少包含n个里其中一个的串的字符串一共有多少个,字符集为A到Z,答案对10007取模 n<=60,len<=100 思路:将至少一个转化为所有个数减去没有出现 ...