分享好友 最新动态首页 最新动态分类 切换频道
使用JQuery中AJAX的几种方法
2024-12-26 15:11

 jQuery 也支持 Ajax 技术,它封装了 XMLHttpRequest 组件并初始化,还封装了 Ajax 请求
中各种基本操作,并 把这些操作定义为简单的方法。另 外,把 Ajax请求中各种状态封装为事件,

这样只要调用对应的事件就可以快速执行绑定的回调函数。

 封装了多种方法实现与远程进行通信,下面分别进行讲解。


1.方法一:load(url,[data],[callback])
load()方法能够载入远程HTML 文件代码并插入到匹配元素中。默认使用GET 方式,传递
附加参数时自动转换为POST 方式。

例如,新建一个text.html 文档。
<!DOCTYPE html PUBLIC "https://
W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.
dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta httpequiv="
ContentType"
content="text/html; charset=utf8"
/>
<title>Ajax 请求</title>
</head>
<body>
<li>列表项1</li>
<li>列表项2</li>
<li>列表项3</li>
</body>
</html>
然后在当前示例文档中输入下面代码:
<ul></ul>
<script language="" type="text/javascript">
$("ul").load("test.html");
</script>
这样 jQuery 会自动从 text.html 文档中提取 body 元素包含的代码,并把这些代码插入到匹
配的ul 元素中。最后显示为:

<ul>
<li>列表项1</li>
<li>列表项2</li>
<li>列表项3</li>
</ul>

请注意,在使用load()方法时,所有页面的字符编码应该设置为utf8,
否则jQuery 在加载
文档时会显示乱码。另外,匹配的元素应该只有一个,否则系统会出现异常。例如,下面代码
将会导致加载出现异常。
<ul></ul>
<ul></ul>
<script language="javascript" type="text/javascript">
$("ul").load("test.html");
</script>
load(url,[data],[callback])方法还可以附带传递参数,这些参数将以 POST 方式传递给服
务器,并可以定义加载成功时执行的回调函数。例如,下面示例将向服务器端的 test.asp 发
送一个请求,并以 POST 的方式传递一个参数 name,参数值为“zhu”。 加载成功之后会弹出
一个提示信息对话框。
<ul></ul>
<script language="javascript" type="text/javascript">
$("ul").load("2088_
test.asp", {name:"zhu"}, function(){
alert("加载成功!");
});
</script>


2.方法二: jQuery.get(url,[data],[callback])

jQuery.get()方法能够通过远程HTTP GET 方式请求载入信息。该方法包含三个参数,参数
含义与load()方法相同。例如,新建一个test.asp 服务器文件,输入下面代码,用来获取客户端
传递过来的查询字符串信息,并把这些信息反馈给客户端。请注意,本示例需要服务器环境的
支持,否则无法执行。
<%
dim str
str = Request.QueryString("name") '从客户端接收查询字符串参数值
Response.Write str '把接收的查询字符串再响应给客户端
%>
然后,在示例文档中输入下面代码:
<script language="javascript" type="text/javascript">
$.get("test.asp", {name:"zhu"}, function(data){
alert(data);
});
</script>
在上面代码中使用jQuery对象的get()方法向服务器端test.asp文件发送一个请求,并 以GET
的方式向服务器传递一个参数,服务器响应之后会把返回值存储在回调函数参数中,所以,最
后弹出的提示对话框显示为“zhu”字符信息。

 

3.方法三:jQuery.post(url,[data],[callback])
jQuery.post() 与 jQuery.get() 的操作方法相同, 不同点是它们传递参数的方式不同。

jQuery.post()是以POST方式来传递参数,所 传递的信息可以不受限制,且 可以传递二进制信息,
具体用法就不再举例。

 

4.方法四:jQuery.ajax()

jQuery.ajax(options)方法与 9.1 节讲解的几个方法功能相同,都是向服务器端发送请求,并
传递参数,最后调用回调函数获取响应信息。下面看一个示例,该示例是在 9.1 节示例基础上
进行修改的。
首先,建立一个服务器端处理文件(test.asp),代码如下:
<%
dim user,where
user = Request.Form("user")
where = Request.Form("where")
Response.AddHeader "ContentType","
text/html;charset=utf8"
Response.Write user&"在"&where
%>
在上面代码中,首先获取客户端传递过来的参数值,使用 Request.Form()数据集合
进行读取,因为客户端采用 POST 方式进行传递。然后再把这些信息传递给客户端,考
虑到传递字符中可能包含中文字符,所以这里需要设置传递的文件字符,编码统一为utf8

在本地文件中输入下面代码:
<script language="javascript" type="text/javascript">
$.ajax({
type: "POST", //设置请求方式
url: "2091_
test.asp", //设置请求URL
data: "user=朱印宏&where=家里", //设置传递的参数值
success: function(msg){ //设置响应成功之后执行的回调函数
alert(msg ); //显示服务器响应的信息
}
});
</script>
最后执行文件,会弹出如图4 所示的提示信息。

jQuery.ajax()方法的主要参数名及其说明
参数名 说 明
async
逻辑值,默认为 true,即请求为异步请求。如果需要发送同步请求,该选项设置为 false。同步请求将锁住浏
览器,用户的其他操作必须等待请求完成才可以执行
beforeSend 发送请求前可修改 XMLHttpRequest 对象的函数
cache 是否从浏览器缓存中加载请求信息,默认为 false
complete 请求完成后回调函数,不管请求是成功还是失败均调用
contentType 发送信息到服务器时内容编码类型,默认为适合大多数应用场合
data
发送到服务器的数据将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。如果 processData 选项禁
止此自动转换, 必须为名/ 值对格式。如果为数组, jQuery 将自动为不同值对应同一个名称, 如
{foo:["bar1","bar2"]}转换为'&foo=bar1&foo=bar2'
dataType 预期服务器返回的数据类型。取值包括 xml、html、script、json 和 jsonp
error 请求失败时调用函数
global 是否触发全局 Ajax 事件,默认为 true
ifModified 是否仅在服务器数据改变时获取新数据,默认为 false
processData 发送的数据是否可以被转换为对象,默认为 true
success 请求成功后回调函数,参数为服务器返回数据
timeout 设置请求超时时间(毫秒)
type 发送请求的方式,默认为 GET,取值包含 POST、GET、PUT 和 DELETE
url 发送请求的地址

 

5.另外:Ajax 事件

讲解的几个 Ajax 请求所使用的方法外,jQuery 为了方便用户灵活跟踪 Ajax 请
求和响应整个完整的过程,还定义了几个事件函数,说明如表7 所示。
表7 Ajax 事件函数及其说明
Ajax 事件 说 明
ajaxStart(callback) Ajax 请求开始时执行函数
ajaxSend(callback) Ajax 请求发送前执行函数
ajaxComplete(callback) Ajax 请求完成时执行函数
ajaxSuccess(callback) Ajax 请求成功时执行函数
ajaxError(callback) Ajax 请求发生错误时执行函数
ajaxStop(callback) Ajax 请求结束时执行函数
例如,下面示例连续跟踪Ajax 请求的全部过程。该过程实际上还是利用readyState 属性进
行跟踪的,把该属性封装到一个方法中,这样使用更加方便。

最新文章
2024实时全额支付时代,金融变革的深刻印记
随着科技的飞速发展,金融领域也迎来了前所未有的变革,在数字化浪潮的推动下,全球支付体系不断革新,2024年12月14日,一个关于实时全额支付的日子,成为了这一变革中的重要节点,本文将围绕这一天,详细回顾实时全额支付的背景、重大事件
Eclipse用docker Maven插件构建镜像发布到远程服务器
完全参考:https://blog.csdn.net/wh15055768834/article/details/902286341. Eclipse安装Docker Tools插件通过菜单项添加新的站点,步骤是:HelpInstall New Software…Add…。注明名字为:Docker Nightly,地址为:https://download.eclip
6款WordPress插件:辅助进行模板制作
1. Theme test drive : 点击下载模板测试驱动插件,在新模板正式使用之前对模板进行测试。启用该插件后,只有管理员(或者具有某些权限的用户)可以看到新模板的预览效果,这在你还需修改模板文件时作用显著。2. Test data creator : 点
DeepSeek V2.5上线:革命性联网搜索功能引领AI新潮流
在人工智能技术飞速发展的今天,DeepSeek官方于2024年12月10日正式宣布DeepSeek V2系列的收官之作——DeepSeek V2.5的最终版微调模型DeepSeek-V2.5-1210。这一全新版本不仅增强了模型在多种领域的能力,尤其是在数学、代码、写作和角色扮演
2022-2027年中国营养辅食电商市场竞争态势及行业投资前景预测报告
【报告类型】产业研究 【报告格式】电子版、纸介版 【出品单位】华经产业研究院 本报告由华经产业研究院出品,对中国营养辅食电商行业的发展现状、竞争格局及市场供需形势进行了具体分析,并从行业的政策环境、经济环境、社会
2025延平大厦-售楼处官方网站-百度百科-梧桐·玖里-上海房天下
静安寺梧桐树下,约-²复古风大平层老静安静安寺 南洋复古风大平层梧桐·玖里(#延平大厦) 类住宅在售售楼处电话☎:400-887-8824(预约热线)✔✔✔如有问题欢迎来电咨询,专业一对一热情服务,让您用专业眼光去买房。延平大厦售楼处电话
AI游戏视频与动态场景生成系统
一、游戏开发困境,老板们的棘手难题在竞争白热化的游戏行业,想要脱颖而出绝非易事,各位创业老板们可谓是面临重重挑战。游戏视频与动态场景制作成本高昂,从建模到渲染,每一个环节都像是资金的黑洞,让预算常常超支,财务压力山大;创意
2018年12月12日 | 重拳布局智能互联 沃尔沃汽车为中国消费者打造智能服务新生态
汽车作为交通工具服务于人,已有一个多世纪。而今,当汽车在出行领域被赋予更多的意义,我们该以怎样的视角去关注和思考未来汽车的发展?随着造车新势力的兴起,汽车已经成为集计算机、现代传感技术、信息融合、通讯、人工智能等科技一身的
applecombill扣费是什么
就是您在Apple上购买的的东西产生的费用。当您从 Apple 购买 App、音乐、影片或其他内容时,这个会出现在您的对账单上。当续订订阅以及家庭成员从 Apple 购买 App 或内容时,它也会出现。文章目录:1、applecombill扣费是什么2、applecombi
ai免费写作助手:PPT一键生成,自动创作神器,免费写作助手免费使用
在数字化时代人工智能的应用已经深入到了咱们生活的方方面面。对写作和演示制作而言免费写作助手的出现无疑为那些急需高效、便捷创作工具的人们带来了巨大便利。无论是撰写文章、制作报告还是构思PPT这些智能工具都能一键生成大大节省了时
相关文章
推荐文章
发表评论
0评