对于jQuery通过Ajax方式传递数据时,我们还可以在过程中进行一定的处理,以便达到我们的需求。

观察函数

ajaxStart 和 ajaxStop 函数可以用来作为观察函数,我们可以使用观察函数的回调函数来做相应的处理。

当 Ajax 请求开始且尚未进行其他传输时,会触发 ajaxStart 的回调函数。
当最后一次活动请求终止时,则会执行通过 ajaxStop 注册的回调函数。
由于观察函数具备全局性,所以需要使用 $(document) 来调用。我们通过使用 Ajax 方法取得一个图片的例子来测试两个函数:
当前页面为:

<div></div><button>load</button>

同目录下的 test.html 内容为:

<img src="avatar.jpg" />

点击按钮后希望载入图像:

 $('button').click(function() {  $('div').load('test.html'); });

此时我们可以使用 ajaxStart 和 ajaxStop 函数来增加提示:

 $(document).ajaxStart(function() {//  alert('load a picture'); }).ajaxStop(function() {  alert('show a picture'); }); $('button').click(function() {  $('div').load('test.html'); });

此时点击按钮后,再图像载入前先提示 load a picture,载入后提示 show a picture。

错误处理

最常用的方式是全局的 ajaxError 方法,以上例为例,如果我们像一个不存在的页面发送数据请求:

 $(document).ajaxError(function() {//  alert('load failed!'); }); $('button').click(function() {  $('div').load('noexsited.html'); });

此时点击按钮后:

对于非 load 方法,还可以使用 fail 方法来连缀处理:

 $('button').click(function() {  $.get('noexsited.html', function(data) {  }).fail(function(jqXHR) {   alert('status is ' + jqXHR.status);  }); });

JSONP

JSONP 即 JSON with padding,填充式 JSON,利用的是 <script> 标签可以跨域获取 Javascript 文件的思路,故可以跨域获取 JSON 数据。
JSONP 的格式是把标准 JSON 文件包装在一对圆括号中,圆括号又前置一个任意字符串。这个字符串,即所谓的 P,由请求数据的客户端来决定。
同样是上例的按钮,首先我们将外域页面 otherdomain.com/index.php 内容设置为:

<?php$data = '{ "name": "stephenlee", "sex": "male" }';echo $_GET['callback'] .'('. $data .')';

我们使用特殊的占位符 ? 来实现跨域获取 JSON 数据:

 $('button').click(function() {  $.getJSON('otherdomain.com/index.php?callback=?', function(data) {   console.log(data);  }); });


数据获取成功。

最新资讯
欧洲专利局研究:三星电池专利申请量为全球第一

欧洲专利局研究:三星电

欧洲专利局(EPO)与国际能源署(IEA)22日发布一项共同研究结
滴滴橙心优选与中粮福临门达成合作 涉及商品供应等方面

滴滴橙心优选与中粮福

滴滴旗下社区电商平台橙心优选与中粮福临门食品营销有
Facebook内容监管委员会大选前运作 可推翻扎克伯格决定

Facebook内容监管委员

该监督委员会被一些人士称为Facebook的“最高法(tian)院(ping)”,有
特斯拉新电池计划发布 对谁的威胁最大?

特斯拉新电池计划发布

虽然现在特斯拉的电池计划并未成为现实,但随着特斯拉从
拼多多低市价1000元卖茅台,茅台称没供货

拼多多低市价1000元卖

拼多多上第三方卖家销售的53度飞天茅台价格远低于市场
美团配送魏巍:开放平台业务规模已增长175%

美团配送魏巍:开放平台

美团配送总经理魏巍透露,自去年宣布对外开放即时配送能
最新文章
详解Vue的ref特性的使用

详解Vue的ref特性的使

这篇文章主要介绍了详解Vue的ref特性的使用,文中通过
vue学习笔记之slot插槽基本用法实例分析

vue学习笔记之slot插

这篇文章主要介绍了vue学习笔记之slot插槽基本用法,结
vue跳转方式(打开新页面)及传参操作示例

vue跳转方式(打开新页

这篇文章主要介绍了vue跳转方式(打开新页面)及传参操作,
vue学习笔记之过滤器的基本使用方法实例分析

vue学习笔记之过滤器

这篇文章主要介绍了vue学习笔记之过滤器的基本使用方
js获取本日、本周、本月的时间代码

js获取本日、本周、本

本篇文章给大家分享的内容是利用js如何获取本日、本周
node crawler如何添加promise支持

node crawler如何添加

这篇文章主要介绍了node crawler如何添加promise支持,