一、jQuery中的Ajax

1 load()方法 load(url[,data][,callback])

url // string类型,请求html页面的url地址
data // object类型,发送至服务器的key/value数据
callback // function类型,请求完成时的回调函数,无论请求成功或失败

1.1 载入html文档

首先构建一个被load()加载并追加到页面中的html文件,取名为test.html,如下:

<div class="comment">
<h6>项目1:</h6>
<p class="para">值1</p>
</div>
<div class="comment">
<h6>项目2:</h6>
<p class="para">值2</p>
</div>
<div class="comment">
<h6>项目3:</h6>
<p class="para">值3</p>
</div>

触发ajax页面和jQuery代码如下:

<input type="button" id="send" value="ajax获取"/>
<div class="comment">所有项目:</div>
<div id="resText"></div>
<script>
$(function(){
$("#send").click(function(){
$("#resText").load("test.html");
});
});
</script>

执行如上代码后,test.html的内容被加载进#resText中。

1.2 筛选载入的html文档

<!--在载入的文件名后跟选择器-->$("#resText").load("test.html .para");

1.3 传递方式

load()方法的传递方式根据参数data自动指定,如果没有参数传递,则采用GET方式传递;反之,则会自动转换为POST方式。

$("#resText").load("test.php",{name:"rain",age:"22"},function(){
//...
});

1.4 回调参数

加载完成(无论请求成败)后继续的操作。提供3个参数:请求返回的内容、请求状态、XMLHttpRequest对象。

$("#resText").load("test.html",function(responseText,textStatus,XMLHttpRequest){
// responseText: 请求返回的内容
// textStatus: 请求状态:success、error、notmodified、timeout 4种
// XMLHttpRequest: XMLHttpRequest对象
});

2 $.get()方法和$.post()方法

2.1 $.get()

$.get(url[,data][,callback][,type])

参数名称

类型

说明

url

String

请求的HTML页的URL地址

data(可选)

Object

发送至服务器的key/value数据回作为QueryString附加到请求URL中

callback(可选)

Function

载入成功时回调函数(只有当Response的返回状态是success才调用该方法)自动将请求结果和状态传递给该方法

type(可选)

String

服务器端返回内容的格式,包括xml、html、script、json、text和_default

$.get()方法的回调函数注释:

$.get()方法的回调函数只有两个参数data和textStatus,且回调函数只有当数据成功返回(success)后才被调用,和load()方法不同

function(data,textStatus){
//data:返回的内容,可以是XML文档,JSON文件,HTML片段等等
//textStatus:请求状态:success、error、notmodified、timeout4种
}

例(P182)

<form id="form1" action="#">
<p>评论</p>
<p>姓名<input type="text" name="username" id="username"/></p>
<p>内容<textarea name="content" id="content"></textarea></p>
<p><input type="button" id="send" value="提交"/></p>
</form>
<div class="comment">已有评论</div>
<div id="resText"></div>

2.1.1 使用参数

$("#send").click(function(){
$.get("get1.php",{ //确定请求页面的URL地址
username:$("#username").val(),
content:$("#content").val() //将姓名和内容的值作为data参数传递给后台
},回调函数);
});

2.1.2 数据格式

HTML片段

$(function(){
$("#send").click(function(){
$.get("get1.php",{
username:$("#username").val(),
content:$("#content").val()
},function(data,textStatus){
$("#resText").html(data); //将返回的数据添加到页面上
});
});
});

XML文档(需要在服务端设置Content-Type类型:header("Content-Type:text/xml; charset=utf-8");//php)

$(function(){
$("#send").click(function(){
$.get("get2.php",{
username:$("#username").val(),
content:$("#content").val()
},function(data,textStatus){
var username = $(data).find("comment").attr("username");
var content = $(data).find("comment content").text();
var txtHtml ="<div class='comment'><h6>"
 + username +":</h6><p class='para'>"+ content +"</p></div>";
$("#resText").html(txtHtml); //将返回的数据添加到页面上
});
});
});

JSON文件

$(function(){
$("#send").click(function(){
$.get("get3.php",{
username:$("#username").val(),
content:$("#content").val()
},function(data,textStatus){
var username = data.username;
var content = data.content;
var txtHtml ="<div class='comment'><h6>"
 + username +"</h6><p class='para'>"+ content +"</p></div>";
$("#resText").html(txtHtml); //将返回的数据添加到页面上
},"json"); //设置$.get()方法的第四个参数(type)为"json"来代表期待服务器端返回的数据格式
});
});

2.2 $.post()

与$.get()的区别

  • get请求会将参数跟在URL后进行传递,而post请求则是作为HTTP消息的实体内容发送给web服务器。
  • get方式对传输的数据有大小限制(<=2kb),而使用POST方式传递的数据量不受限制
  • get方式请求的数据会被浏览器缓存起来,引起安全性问题
  • get方式和post方式传递的数据在服务器端的获取也不相同。php中,get方式的数据可以用$_GET[]获取,而post方式可以用$_POST[]获取。两种方式都可以用$_REQUEST[]来获取。

由于post和get方式提交的所有数据都可以通过$_REQUEST[]来获取,因此只需要改变jQuery函数,就可以在get请求和post请求之间切换。(P186)

另外,当load()方法带有参数传递时,会使用post方式发送请求。因此也可以使用load()方法来完成同样的功能。如:

$(function(){
$("#send").click(function(){
$("#resText").load("post1.php",{
username:$("username").val(),
content:$("#content").val()
});
});
});

3 $.getScript()方法和$.getJson()方法(P187)

3.1 $.getScript() 动态加载js文件(可以加回调函数)

$(function(){
$("#send").click(function(){
$.getScript("test.js");
});
});

3.2 $.getJSON() 动态加载json文件,加载后的数据可通过回调函数处理

$(function(){
$("#send").click(function(){
$.getJSON("test.json",function(data){
//data:返回的数据
});
});
});

遍历数据(P189):

$(function(){
$("#send").click(function(){
$.getJSON("test.json",function(data){
$("#resText").empty();  
 //返回数据成功后,首先清空id为resText的元素的内容,以便重新构造新的html
var html ="";
$.each(data,function(commentIndex,comment){  
 //$.each()函数遍历对象和数组
//(以一个数组或者对象作为第1个参数,以一个回调函数作为第2个参数。
//回调函数拥有2个参数:第1个为对象的成员或数组的索引,第2个为对应变量或内容)
html +="<div class='comment'><h6>"+ comment['username']
+":</h6><p class='para'>"+ comment['content'] +"</p></div>";  
 //将遍历出来的内容构建成html代码拼接起来
});
$("#resText").html(html); //将构建好的html添加到id为resText的元素中
});
});
});

引申:JSONP(P190)

JSONP允许在服务器端集成Script tags返回至客户端,通过JavaScript Callback的形式实现跨域访问。(略)

4 $.ajax()方法(P191)

$.ajax(options)  // 该方法只有1个参数

常用参数表(参数详细说明见原书P192)

参数名称

类型

说明

url

String

发送请求的地址,默认为当前页地址

type

String

请求方式(POST或GET,默认为GET)

timeout

Number

设置请求超时时间

data

Object或String

发送到服务器的数据

dataType

String

预期服务器返回的数据类型,可用类型有:xml、html、script、json、jsonp、text

beforeSend

Function

发送请求前可以修改XMLHttpRequest对象的函数,例如添加自定义HTTP头

complete

Function

请求完成后调用的回调函数(请求成功或失败时均调用)

success

Function

请求成功后调用的回调函数

error

Function

请求失败时被调用的函数

global

Boolean

默认为true。表示是否触发全局Ajax事件

$.ajax()方法是jQuery最底层的Ajax实现,可以用来代替前面所有的方法

如使用$.ajax()方法代替$.getScript()方法:

$(function(){
$("#send").click(function(){
$.ajax({
type:"GET",
url:"test.js",
dataType:"script"
});
});
});

再如使用$.ajax()方法代替$.getJSON()方法:

$(function(){
$("#send").click(function(){
$.ajax({
type:"GET",
url:"test.json",
dataType:"json",
success:function(data){
$("#resText").empty();
var html ="";
$.each(data,function(commentIndex,comment){
html +="<div class='comment'><h6>"+ comment["username"]
+":</h6><p class='para'>"+ comment["comment"] +"</p></div>";
});
$("#resText").html(html);
}
});
});
});

转载于:https://www.cnblogs.com/bienfantaisie/archive/2010/12/06/1897389.html

《锋利的jQuery》要点归纳(五)jQuery与ajax的应用(上)相关推荐

  1. jQuery -- 光阴似箭(五):AJAX 方法

    jQuery -- 知识点回顾篇(五):AJAX 方法 1. $.ajax 方法:用于执行 AJAX(异步 HTTP)请求. <!DOCTYPE html> <html> &l ...

  2. jQuery学习归纳总结

    jQuery学习归纳总结 常用版本:jQuery-1.12.4.js(未压缩) jQuery-1.12.4.min.js(已压缩) // 引入jQuery <script src = 'jQue ...

  3. 锋利的js前端分页之jQuery

    原文:锋利的js前端分页之jQuery 大家在作分页时,多数是在后台返回一个导航条的html字符串,其实在前端用js也很好实现. 调用pager方法,输入参数,会返回一个导航条的html字符串.方法的 ...

  4. jQuery学习(五)—课堂实训题专栏

    jQuery学习(五)- 课堂实训题专栏 实训一 实训二 实训3 累了累了,睡觉了 ZZZZZ 本期结束,我们下回见!

  5. jQuery系列 第五章 jQuery框架动画特效

    第五章 jQuery框架动画特效 5.1 jQuery动画特效说明 jQuery框架中为我们封装了众多的动画和特效方法,只需要调用对应的动画方法传递合适的参数,就能够方便的实现一些炫酷的效果,而且jQ ...

  6. 夜光带你走进Jquery(十五)擅长的领域

    夜光序言: 回眸,撩起云水边的清凉,拢一袖的香,岁月行的如此悠远. 万般情愫,曾经的过往,彼时的欢喜,早在不语间随如水的文字流泻. 正文: jQuery 操作 CSS jQuery 拥有若干进行 CS ...

  7. jQuery学习教程五:jQuery 效果 - 淡入淡出, Fading 方法

    实例 jQuery fadeIn() 演示 jQuery fadeIn() 方法. <!DOCTYPE html> <html> <head> <script ...

  8. ajax一次请求多条记录,Jquery 一次处理多个ajax请求的代码

    Jquery 一次处理多个ajax请求的代码 复制代码 代码如下: $(document).ready(function () { $('#getsetgo').click(function () { ...

  9. ajax jq 图片上传请求头_全面分析前端的网络请求方式:Ajax ,jQuery ,axios,fetch

    链接:https://juejin.im/post/5c9ac607f265da6103588b31 一.前端进行网络请求的关注点 大多数情况下,在前端发起一个网络请求我们只需关注下面几点: 传入基本 ...

  10. jQuery课程介绍、Query的介绍、Query初次体验、jQuery再次体验、jQuery中的顶级对象

    jQuery课程介绍 <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

最新文章

  1. linux前台与后台进程调度(ps fg bg)
  2. 软工专硕考研_分析|华北电力(北京)大学20计算机考研报录分析!电子信息复试狂刷114人,软工专硕复试录取高达1:4.7!...
  3. mysql 按月统计代码_SQL对数据进行按月统计或对数据进行按星期统计的实例代码...
  4. zuk z2 Android7.0官方,首发ZUK Z2官方固件ZUI2.5安卓7.0卡刷包!
  5. 小程序 国际化_在国际化您的应用程序时忘记的一件事
  6. 技术动态 | 知识图谱的策展
  7. html高度随宽度编号,纯css实现容器高度随宽度等比例变化的四种解决方案
  8. 基于顺序存储结构的图书信息表的旧图书的出库(C++)
  9. [Voice communications] 音量的控制
  10. 蚁群算法最短路径规划多出口情况及问题答疑
  11. 使用MyBatis快速生成代码
  12. edius多机位多轨编辑
  13. android抓socket数据包,sokit-1.3 CommMonitor 串行端口监视精灵 友善串口调试助手
  14. 独木桥的c语言程序,独木桥
  15. 我学炒外汇 第二十二篇实战心得
  16. 茶道茶文化PPT模板
  17. 2022年分享一些好用的内网穿透软件
  18. 关于Vue中keep-alive的作用是什么?怎么使用?
  19. 筱筱笔记:npm发包流程
  20. CSS小技巧之替换图片(content)

热门文章

  1. 疫情蔓延让这项CV技术突然火了,盘点开源代码
  2. 类别不平衡学习:论文/代码/框架/库
  3. NeurlPS 2019丨微软亚洲研究院 5 篇精选论文解读
  4. 卡内基·梅隆大学新提出AdaScale:自适应缩放实现视频对象实时检测算法
  5. 数学建模之微分方程(符实现例题和MATLAB源码)
  6. 想玩转工业界机器学习?先学Spark吧
  7. ROS MATLAB 启动
  8. 关于文件整理的一些心得
  9. 小米路由器dns辅服务器未响应,小米路由器频繁掉线的原因与解决办法
  10. 主板没有rgb接口怎么接灯_老电脑也玩一下RGB,一次酷冷至尊MB400L智瞳机箱安装体验...