jQuery使用ajax_动力节点Java学院整理


Posted in jQuery onJuly 05, 2017

用JavaScript写AJAX前面已经介绍过了,主要问题就是不同浏览器需要写不同代码,并且状态和错误处理写起来很麻烦。

用jQuery的相关对象来处理AJAX,不但不需要考虑浏览器问题,代码也能大大简化。

ajax

jQuery在全局对象jQuery(也就是$)绑定了ajax()函数,可以处理AJAX请求。ajax(url, settings)函数需要接收一个URL和一个可选的settings对象,常用的选项如下:

async:是否异步执行AJAX请求,默认为true,千万不要指定为false
method:发送的Method,缺省为'GET',可指定'POST'、'PUT'等;
contentType:发送POST请求的格式,默认值为'application/x-www-form-urlencoded; charset=UTF-8',也可以指定为text/plain、application/json
data:发送的数据,可以是字符串、数组或object。如果是GET请求,data将被转换成query附加到URL上,如果是POST请求,根据contentType把data序列化成合适的格式;
headers:发送的额外的HTTP头,必须是一个object;
dataType:接收的数据格式,可以指定为'html'、'xml'、'json'、'text'等,缺省情况下根据响应的Content-Type猜测。

下面的例子发送一个GET请求,并返回一个JSON格式的数据:

var jqxhr = $.ajax('/api/categories', {
  dataType: 'json'
});
// 请求已经发送了

不过,如何用回调函数处理返回的数据和出错时的响应呢?

还记得Promise对象吗?jQuery的jqXHR对象类似一个Promise对象,我们可以用链式写法来处理各种回调:

'use strict';

function ajaxLog(s) {
  var txt = $('#test-response-text');
  txt.val(txt.val() + '\n' + s);
}

$('#test-response-text').val('');
var jqxhr = $.ajax('/api/categories', {
  dataType: 'json'
}).done(function (data) {
  ajaxLog('成功, 收到的数据: ' + JSON.stringify(data));
}).fail(function (xhr, status) {
  ajaxLog('失败: ' + xhr.status + ', 原因: ' + status);
}).always(function () {
  ajaxLog('请求完成: 无论成功或失败都会调用');
});

get

对常用的AJAX操作,jQuery提供了一些辅助方法。由于GET请求最常见,所以jQuery提供了get()方法,可以这么写:

var jqxhr = $.get('/path/to/resource', {
  name: 'Bob Lee',
  check: 1
});

第二个参数如果是object,jQuery自动把它变成query string然后加到URL后面,实际的URL是:

/path/to/resource?name=Bob%20Lee&check=1

这样我们就不用关心如何用URL编码并构造一个query string了。

post

post()get()类似,但是传入的第二个参数默认被序列化为application/x-www-form-urlencoded

var jqxhr = $.post('/path/to/resource', {
  name: 'Bob Lee',
  check: 1
});

实际构造的数据name=Bob%20Lee&check=1作为POST的body被发送。

getJSON

由于JSON用得越来越普遍,所以jQuery也提供了getJSON()方法来快速通过GET获取一个JSON对象:

var jqxhr = $.getJSON('/path/to/resource', {
  name: 'Bob Lee',
  check: 1
}).done(function (data) {
  // data已经被解析为JSON对象了
});

安全限制

jQuery的AJAX完全封装的是JavaScript的AJAX操作,所以它的安全限制和前面讲的用JavaScript写AJAX完全一样。
如果需要使用JSONP,可以在ajax()中设置jsonp: 'callback',让jQuery实现JSONP跨域加载数据。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
为JQuery EasyUI 表单组件增加焦点切换功能的方法
Apr 13 jQuery
jQuery简介_动力节点Java学院整理
Jul 04 jQuery
jQuery实现键盘回车搜索功能
Jul 25 jQuery
jquery获取链接地址和跳转详解(推荐)
Aug 15 jQuery
jquery动态赋值id与动态取id方法示例
Aug 21 jQuery
jQuery实现的简单获取索引功能示例
Jun 04 jQuery
JQuery Ajax动态加载Table数据的实例讲解
Aug 09 jQuery
jQuery实现数字自动增加或者减少的动画效果示例
Dec 11 jQuery
jquery获取img的src值实例介绍
Jan 16 jQuery
jQuery - AJAX load() 实例用法详解
Aug 27 jQuery
jQuery实现可以扩展的日历
Dec 01 jQuery
jQuery实现手风琴特效
Jan 11 jQuery
jQuery扩展_动力节点Java学院整理
Jul 05 #jQuery
jQuery选择器_动力节点Java学院整理
Jul 05 #jQuery
jQuery事件_动力节点Java学院整理
Jul 05 #jQuery
jQuery修改DOM结构_动力节点Java学院整理
Jul 05 #jQuery
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
Jul 05 #jQuery
jquery拖动改变div大小
Jul 04 #jQuery
jQuery实现动态给table赋值的方法示例
Jul 04 #jQuery
You might like
使用php统计字符串中中英文字符的个数
2013/06/23 PHP
Zend Framework动作控制器用法示例
2016/12/09 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
extjs 学习笔记(一) 一些基础知识
2009/10/13 Javascript
模仿JQuery.extend函数扩展自己对象的js代码
2009/12/09 Javascript
javascript字符串拼接的效率问题
2010/12/25 Javascript
js arguments,jcallee caller用法总结
2013/11/30 Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
2014/09/23 Javascript
jquery获取多个checkbox的值异步提交给php
2015/07/07 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
JavaScript学习笔记之数组去重
2016/03/23 Javascript
浅谈Sublime Text 3运行JavaScript控制台
2016/06/06 Javascript
浅析jQuery操作select控件的取值和设值
2016/12/07 Javascript
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
vue小白入门教程
2018/04/02 Javascript
el-form 多层级表单的实现示例
2020/09/10 Javascript
pygame学习笔记(1):矩形、圆型画图实例
2015/04/15 Python
python实现发送和获取手机短信验证码
2016/01/15 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
2018/12/19 Python
使用Django搭建一个基金模拟交易系统教程
2019/11/18 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
2020/04/21 Python
Python爬取网页信息的示例
2020/09/24 Python
python文件路径操作方法总结
2020/12/21 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
印度最好的在线药品订购网站:PharmEasy
2018/11/30 全球购物
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
白酒业务员岗位职责
2013/12/27 职场文书
生物制药专业自我鉴定
2014/02/19 职场文书
2014小学语文教师个人工作总结
2014/12/03 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
讲座通知范文
2015/04/23 职场文书
个人借条范本
2015/05/25 职场文书
2016教师暑期培训学习心得体会
2016/01/09 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
Python利用capstone实现反汇编
2022/04/06 Python