jQuery执行请求demo
4.3.2 执行GET请求
使用jQuery来执行GET请求有多种可选的方法。最简单的方法是使用$.get(),其参数是一个URL和一个回调函数:该回调函数有两个参数:一个是从服务器端返回的文本,一个是状态字符串(success或error),比如:
![]() |
也可以用一个由"名称-值"对组成的联合数组来代替URL中的查询字符串:
|
这个联合数组的属性将自动被转成URL编码格式并添加到查询字符串中,从而使开发人员无需关注这一细节。
在jQuery中也有一些特定的GET方法,每个都是针对不同目的设计的:
$.getIfModified(),仅当所请求的资源自上次请求之后修改过才执行GET请求,其参数与$.get()相同。
$.getJSON(),执行一个GET请求,并将JSON表达式转成一个JavaScript对象。除了回调函数的参数将是一个JavaScript对象而非文本之外,其参数与$.get()是相同的。JSON将在第8章讨论。
$.getScript(),执行一个GET请求,并且期望响应的是一段JavaScript代码。该代码将在响应的基础上执行。除了回调函数不再接收任何信息之外,其参数与$.get()是相同的。
4.3.4 $.post()方法
在jQuery中,POST请求将通过$.post()方法来发送。该方法的参数与$.get()方法相同:一个URL,一个用来存储各个参数的联合数组,以及一个负责接收返回数据的回调函数。例如:
![]() |
与GET请求类似,jQuery将POST参数转成联合数据格式,然后将该数据作为请求体发送出去。
$.post()方法的第二个和第三个参数都是可选的;不过没有任何理由让我们发送一个不带数据(第二个参数)的POST请求。另外建议仍然提供一个回调函数,用来对响应的状态进行监控
4.3.6 load()方法
在前两个例子中只是简单地将服务器返回的数据填充到HTML元素中,只是一个常用的Ajax模式。Prototype程序库提供的Ajax.Updater方法简化了该模式;而jQuery中的load()方法也有相同的作用。
这个load()方法能够在jQuery中的任何元素或元素组上调用,并且有两种模式:GET和POST。要使用GET模式,需要提供一个URL(包括查询字符串)以及一个可选的回调函数;对于POST模式而言,则需要提供一个URL、一个联合数组以及一个可选的回调函数。如果将前面那个GET示例改为使用load()方法,则达到预期效果所需的JavaScript代码能够大大简化:
|
在这个示例中,第一步是获得一个对divCustomerInfo的引用。当完成该操作后,调用load()方法只需一个URL参数即可。在此回调函数并不是必需的,因为默认的行为是将返回的数据放到<div/>元素中。注意这时已经不再需要displayCustomerInfo()函数了,这也大大地减少了总的代码量。
|
在这里只需要修改一行,就可以彻底去掉saveResult()函数。这段代码现在首先获取一个对divStatus的引用,然后调用load()方法。由于第二个参数是一个联合数组(oBody),而load()方法将假设该请求是POST类型的。同样,在此也不再需要回调函数了。
这个load()方法为在某元素中装载内容提供了一种简单的方法,虽然失去了对成功或失败情况进行处理的自由
4.3.7 $.ajax()方法
在本小节中所讨论的所有其他方法都处于较高的层面,它们为开发人员隐藏了大量的通信细节。所有这些方法有一个共同之处:在其底层,都是使用$.ajax()方法来启动和处理请求的。该方法提供了对请求和响应更精细的控制方法。
$.ajax()方法只有一个参数,即包含各种选项的联合数组,与Prototype的Ajax.Request构造函数很相似。该选项对象由以下属性组成:
Type,请求的类型,GET或POST。
Url,请求发往的URL。
Data,一个存储已编码数据的字符串。仅用于POST请求。
DataType,预期作为响应的数据类型,有"script"、"xml"、"html"或"json"。如果指定的是"script",那么返回的数据将作为JavaScript载入到页面中。
Success(),当接收到成功响应时将要调用的函数。成功响应的状态是2xx或304。该函数有两个参数:XHR对象和一个状态字符串。
Error(),当请求发生错误时将调用的函数。只要不是成功的响应就说明遇到了错误。该函数有两个参数:XHR对象和一个状态字符串。
Error(),当响应接收完成时将调用的函数;不管是成功响应还是不成功的响应。该函数有两个参数:XHR对象和一个状态字符串。
因此如果使用$.ajax()重写前面的GET示例,那么requestCustomerInfo()函数将改为:
|
由于这在jQuery中是一个较低层次的操作,因此success()和error()函数必须考虑XHR对象中与请求相关的额外数据,包括服务器端返回的数据。
4.3.8 ajaxStart()和ajaxStop()方法
Prototype并不是唯一能够提供针对Ajax请求的全局事件处理函数的程序库;jQuery中通过ajaxStart()和ajaxStop()两个方法提供了类似的功能。当一个Ajax请求启动时,并且没有其他未完成的Ajax请求时,将调用ajaxStart()方法。同样,ajaxStop()方法则是在所有Ajax请求都完成时调用。这些方法的参数都是一个函数,这个函数将在事件发生时被调用。
使用这些方法的每一步是获取一个页面元素的引用。然后就可以在这个元素上调用ajaxStart()和ajaxStop()方法了。例如,对于一个ID为divStatus的<div/>元素,可以使用如下所示的代码:
![]() |
http://book.51cto.com/art/200812/99812.htm
jQuery执行请求demo的更多相关文章
- jquery 异步请求Demo【转载】
$(document).ready(function() { $.ajax({ url : "/AjaxAction/LoginArea.ashx", data : {userna ...
- jquery ajax请求方式与提示用户正在处理请稍等,等待数据返回时loading的显示
1.jquery ajax请求方式与提示用户正在处理请稍等 为了提高用户体验度,我们通常会给出 “正在处理,请稍等!”诸如此类的提示.我们可通过设置$.ajax()下的参数beforeSend()来实 ...
- jquery.ajax请求aspx和ashx的异同 Jquery Ajax调用aspx页面方法
1.jquery.ajax请求aspx 请求aspx的静态方法要注意一下问题: (1)aspx的后台方法必须静态,而且添加webmethod特性 (2)在ajax方法中contentType必须是“a ...
- 原生js,jquery ajax请求以及jsonp的调用
ajax 是用来处理前后端交互的技术,可以改善用户体验,其本质是 XMLHttpRequest,异步访问服务器并发送请求数据,服务器返回响应的数据,以页面无刷新的效果改变页面中的局部内容 ...
- jQuery ajax请求错误返回status 0和错误error的问题
上周发现一个jQuery ajax请求错误返回status 0和错误error的问题,responseText是"error",状态码是0而不是200: $.ajax({ type ...
- JQuery ajax请求struts action实现异步刷新的小实例
这个样例是用JQuery ajax和struts来做的一个小样例,在这个样例中采用两种方式将java Util中的list转换成支json的格式,第一种是用json-lib.jar这个jar包来转换, ...
- 二、jQuery Ajax请求
一.Ajax请求 1.jQuery Ajax请求 let ajaxTimeOut = $.ajax({ //将网络请求事件赋值给变量ajaxTimeOut url: "/api_v1.1/a ...
- Win8开虚拟wifi ‘无法启动承载网络 组或资源的状态不是执行请求操作的正确状态“
第一步,首先我们点开开始按钮菜单,要右键以“管理员身份”打开CMD“命令提示符”并键入或者复制(粘贴)命令:netsh wlan show drivers 查看本机无线网卡是否支持此项Wifi热点共享 ...
- 由于 ASP.NET 进程标识对全局程序集缓存没有读权限,因此未能执行请求。错误: 0x80131902
由于 ASP.NET 进程标识对全局程序集缓存没有读权限,因此未能执行请求.错误: 0x80131902 分类: c#2013-06-17 10:22 89人阅读 评论(0) 收藏 举报 ASP.NE ...
随机推荐
- OA,ERP等源码一部分演示
更多源码http://www.pssdss.com QQ:11851298 功能强大的JAVA开发的ERP源码http://cx050027.pssdss.com:8080/ 用户名pssdss ...
- Hibernate之QBC检索和本地SQL检索
QBC查询就是通过使用Hibernate提供的Query By Criteria API来查询对象,这种API封装了SQL语句的动态拼装,对查询提供了更加面向对象的功能接口 本地SQL查询来完善HQL ...
- Spring--通过注解来配置bean
Spring通过注解配置bean 基于注解配置bean 基于注解来配置bean的属性 在classpath中扫描组件 组件扫描(component scanning):Spring能够从classpa ...
- ECSHOP:首页实现显示子分类商品,并实现点击Tab页切换分类商品
例子:首页实现显示子分类商品,并实现点击Tab页切换分类商品(非AJAX) 开始: 1. 打开调试开关 文件地址:include/cls_template.php 找到 : functi ...
- MD5加密帮助类
using System; using System.Collections.Generic; using System.Text; namespace AIMSCommon { /// <su ...
- 自动化测试(四):VBScript脚本语言
VBS基于对象,只能利用现成的对象,不能封装.继承等,意味着不是真正的面向对象 语言的学习: 1.数据定义,变量定义,表达式 2.程序控制结构 3.函数,方法,类 4.异常处理 VBScript的数据 ...
- bzoj 2815 [ZJOI2012]灾难(构造,树形DP)
[题意] 求把每个点删除后,不可达点的数目. [思路] 构造一棵“灭绝树”,要求这棵树满足如果删除根节点后则该子树内的所有结点都不可达.则答案为子树大小-1. 如何构造这棵“灭绝树”? 将原图拓扑排序 ...
- setBackgroundMusicLoop for cocos2dx
给cocos2dx的SimpleAudioEngine加上设置背景音乐循环的方法,详见gist.
- Docker系列(七)Shipyard安装及介绍
Shipyard 是一个基于 Web 的 Docker 管理工具,支持多 host,可以把多个 Docker host 上的 containers 统一管理:可以查看 images,甚至 build ...
- C++ STL@ list 应用 (leetcode: Rotate Array)
STL中的list就是一双向链表,可高效地进行插入删除元素. List 是 C++标准程式库 中的一个 类 ,可以简单视之为双向 连结串行 ,以线性列的方式管理物件集合.list 的特色是在集合的任何 ...


