一、JavaScript实现AJAX(只需四步)
-----------------------------------------------
一、JavaScript实现AJAX(只需四步)
-----------------------------------------------
1、第一步:获取XMLHttpRequest对象
-----------------------------------------------
//(1)获取XMLHttpRequest对象
var xmlHttp = ajaxFunction();
function ajaxFunction(){
var xmlHttp;
try{
//现代浏览器(IE7+、Firefox、Chrome、Safari 和 Opera)都有内建的 XMLHttpRequest 对象
xmlHttp = new XMLHttpRequest();
}catch(e){
try{
//IE6.0
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
//IE5.0及更早版本
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
alert("...");
throw e;
}
}
}
return xmlHttp;
}
-----------------------------------------------
2、第二步:打开与服务器的连接
//(2)打开与服务器的连接
xmlHttp.open(method, url, async);
参数1:method: 请求方式,可以是GET或POST
参数2:url: 所要访问的服务器中资源的路径,如: /day08/XxxServlet
参数3:async: 是否为异步传输,true表示为异步传输,一般都是true。
-----------------------------------------------
3、第三步:发送请求
//(3)通知服务器发送的数据是请求参数
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //(4)发送请求并传递参数给服务器
xmlHttp.send("xxxx"); //注意,如果不给参数可能会造成部分浏览器无法发送请求
a)如果是GET请求,可以传一个null,参数可以在第2步中拼接在url后面。例如:
xmlHttp.send(null);
b)如果是POST请求,传入的就是请求参数,例如:
xmlHttp.send("username="+username+"&psw="+psw)
-----------------------------------------------
4、第四步,注册监听
在XMLHttpRequest对象的一个事件上注册监听:
onreadystatechange
一共有五个状态:(xmlHttp.readyState)
0状态: 表示刚创建XMLHttpRequest对象,还未调用open()方法
1状态: 表示刚调用open()方法,但是还没有调用send()方法发送请求
2状态: 调用完了send()方法了,请求已经开始
3状态: 服务器已经开始响应,但是不代表响应结束
4状态: 服务器响应结束!(通常我们只关心这个状态)
获取xmlHttp对象的状态:
var state = xmlHttp.readyState;//可能得到0,1,2,3,4
获取服务器响应的状态码
var status = xmlHttp.status;
获取服务器响应的内容
var data = xmlHttp.responseText;//得到服务器响应的文本格式的数据
//(5)注册监听,时刻监听服务器处理请求的状态
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4){
//状态为4表示服务器已经处理完成,但是不代表处理成功
if(xmlHttp.status == 200){//当状态码为200,表示服务器成功的处理了请求
var result = xmlHttp.responseText;
//xxx
}
}
}
-----------------------------------------------
二、jQuery实现AJAX
-----------------------------------------------
1、$.ajax方法
$.ajax(url, [type], [async], [data], [async], [callback]);
参数解析:
url -- 发送请求的URL地址
type -- 可选,请求方式,默认为"GET"。
async -- 可选,默认为true,表示异步交互
data -- 可选,发送至服务器的key/value数据
dataType -- 可选,服务器响应数据的类型,默认是responseXML或responseText,其中可用的数据类型有:
json:返回JSON数据。
xml:返回XML文档,可用JS或jQuery处理。
text:返回纯文本字符串。
html:返回纯文本HTML内容,包含的script标签会在插入DOM时执行。
script:返回纯文本JavaScript代码。不会自动缓存结果。除非设置了cache参数。注意在远程请求时(不在同一个域下),所有post请求都将转为get请求。
success -- 可选,请求成功后执行的函数,函数参数:
result -- 服务器返回的数据
代码示例: 校验用户名是否存在
$.ajax({
"url" : "<%= request.getContextPath() %>/AjaxCheckUsernameServlet",
"data" : {"username": username},
"async" : true,
"type" : "POST",
"success" : function(result){
$("#err-msg").html("<font style='color:red'>"+result+"</font>")
}
});
-----------------------------------------------
2、$.get方法、$.post方法
$.get(url, [data], [callback]); -- 请求方式为GET
$.post(url, [data], [callback]); -- 请求方式为POST
参数解析:
url -- 发送请求的URL地址
data -- 可选,向服务器发送的数据
callback -- 可选,请求成功后所执行的函数
代码示例:校验用户名是否存在
$.get("<%= request.getContextPath() %>/AjaxCheckUsernameServlet", {"username": username}, function(result){
$("#err-msg").html("<font style='color:red'>"+result+"</font>");
});
-----------------------------------------------
3、load方法
$(selector).load(url,data,callback);
参数解析:
selector -- 选择器,将从服务器获取到的数据加载到指定的元素中
url -- 发送请求的URL地址
data -- 可选,向服务器发送的数据 key/value数据 如:{"username" : "张飞", "psw" : "123"}
callback -- 可选,load方法完成后所执行的函数
代码示例:
$("#err-msg").load("<%= request.getContextPath() %>/AjaxCheckUsernameServlet", {"username": username});
-----------------------------------------------
一、JavaScript实现AJAX(只需四步)的更多相关文章
- 为什么学Python语言,只需四步全面了解Python语言
为什么学Python语言,只需四步全面了解Python语言每个时代都会悄悄犒赏会选择的人,Python现在风口的语言Python--第三大主流编程语言Python , 是一种面向对象的解释型计算机程序 ...
- vuex其实超简单,只需3步
前言 之前几个项目中,都多多少少碰到一些组件之间需要通信的地方,而因为种种原因,event bus 的成本反而比vuex还高, 所以技术选型上选用了 vuex, 但是不知道为什么,团队里的一些新人一听 ...
- 只需一步,DLA开启TableStore多元索引查询加速!
一.背景介绍 Data Lake Analytics(简称DLA)在构建第一天就是支持直接关联分析Table Store(简称OTS)里的数据,实现存储计算分离架构,满足用户基于SQL接口分析Tabl ...
- 如何把C++的源代码改写成C代码?而C改C++只需一步!
★ 如何把C++的源代码改写成C代码? C++解释器比C语言解释器占用的存储空间要大,想要在某些特定场合兼容C++代码,同时为了节省有限的存储空间,降低成本,也为了提高效率,将用C++语言写的源程序用 ...
- 安装go语言,配置环境及IDE,只需3步
安装go语言,配置环境及IDE,只需3步 ( 欢迎加入go语言群: 218160862 , 群内有实践) 第1.下载 go压缩包,解压 ,如果你是window系统,请选择go1.5.windows ...
- PDF怎么旋转页面,只需几步轻松搞定!
有时候我们下载一个PDF文件里面有页面是旋转的情况,用手机看的时候可以把手机旋转过来看,那么用电脑的时候总不可能也转过来看吧,笔记本是可以的台式的是不行的,这个时候我们就需要把PDF文件中旋转的页面转 ...
- 只需3步,快来用AI预测你爱的球队下一场能赢吗?
摘要:作为球迷,我们有时候希望自己拥有预测未来的能力. 本文分享自华为云社区<用 AI 预测球赛结果只需三步,看看你爱的球队下一场能赢吗?>,作者:HWCloudAI. 还记得今年夏天的欧 ...
- 用keytool创建Keystore和Trustsotre文件只需五步
用keytool创建Keystore和Trustsotre文件 JSSE使用Truststore和Keystore文件来提供客户端和服务器之间的安全数据传输.keytool是一个工具可以用来创建包含公 ...
- 产品开发也要看阵容,APP开发只需五步变得靠谱
最早认识的一个朋友是程序员,曾经到一家外包公司接单子,小外包公司经常遇到的问题就是和需求方谈产品功能.客户要做外包,对方让他一次性报价,但是客户连功能点自己都不清楚,这时朋友说还是按照具体功能点来做吧 ...
随机推荐
- 修改mysql和MariaDB密码
一.修改mysql密码 UPDATE user SET password=PASSWORD('new_password') WHERE user='root'; 二.修改MariaDB密码 alter ...
- 将后端返回的数据在jsp中拼接成table列表
//先下载jquery js文件 放入项目中 jsp文件内容 <%@ page language="java" pageEncoding="UTF-8"% ...
- Qt学习笔记-Qt5和Qt4在音频方面的不同-QtAV
之前学习qt4的时候,播放音频用的是phonon播放后端插件+mplayer. 今天改用qt5了.qt5中去掉了phonon模块加了multimedia.但是依然无法播放音乐,因为没有ffmpge s ...
- docker 安装 运行 卸载
一.卸载docker 安装时使用什么工具安装的docker就用什么工具卸载docker: 1.yum卸载docker 查看已安装的docker yum list installed | grep do ...
- Java Tree 树 数据结构
说到树结构就不得不回顾 链表结构 https://www.cnblogs.com/easyidea/p/13371863.html 如果链表结构中再多一个指针会是什么情况? 是不是像树根一样,这就是 ...
- 微信小程序-页面下拉
微信小程序当滑动到最顶部和最底部时,继续下拉,会将整个页面拉下去或者拉上去,本来以为是客户端自有的特性,就没去管他,直到我的禅道出现了这个记录... 其实这个问题是可以解决的,只需要在你不想出现在此情 ...
- 柔性分布式事务关于异步解决方案MQ版
上述思想本质是 二阶段提交变体 1,2是prepare阶段 4是commit阶段 存在问题 MQ提供半消息支持 生产者提供消息回查功能 发送方多次半消息到MQSERVER 消费方会多次消费消息 生产 ...
- 如何快速搭建hadoop集群
安装好虚拟机,重命名为master 配置网卡 命令:vi /etc/sysconfig/network-scripts/ifcfg-en(按tab键) 这里要配置ip,网关,域名解析 例如我的 IPA ...
- 关于ajax 异步文件上传 node 文件后台接口
<body> <img src="" alt="" id="img"> <input type="f ...
- Serverless 如何应对 K8s 在离线场景下的资源供给诉求
本文整理自腾讯云云原生产品团队的专家产品经理韩沛在 Techo 开发者大会云原生专题的分享内容--Kubernetes 混部与弹性容器.本次分享主要分为三部分:基于 K8s 的应用混部.提升应用混部效 ...