用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
# ajax
# Jquery中$.get()
# $.post()
# $.ajax()
# $.getJSON()的用法总结
# jquery ajax提交表单数据的两种方式
# jquery实现ajax提交form表单的方法总结
# jQuery使用ajaxSubmit()提交表单示例
# jquery ajax例子返回值详解
# jquery中ajax使用error调试错误的方法
# JQuery AJAX提交中文乱码的解决方案
# 基于JQuery框架的AJAX实例代码
# JQuery的Ajax请求实现局部刷新的简单实例
# jquery ajax 向后台传递数组参数示例
# 第二个
# 链式
# 回调
# 如何用
# 的是
# 是一个
# 过了
# 不需要
# 也能
# 可以用
# 把它
# 将被
# 千万不要
# 可选
# 定了
# 转换成
# 送了
# 方法来
# 最常见
# 用得
相关文章:
高端建站如何打造兼具美学与转化的品牌官网?
如何选择高效可靠的多用户建站源码资源?
如何确保西部建站助手FTP传输的安全性?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
建站之星代理商如何保障技术支持与售后服务?
Thinkphp 中 distinct 的用法解析
电脑免费海报制作网站推荐,招聘海报哪个网站多?
已有域名建站全流程解析:网站搭建步骤与建站工具选择
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
,交易猫的商品怎么发布到网站上去?
宝塔新建站点报错如何解决?
郑州企业网站制作公司,郑州招聘网站有哪些?
如何高效搭建专业期货交易平台网站?
,有什么在线背英语单词效率比较高的网站?
魔方云NAT建站如何实现端口转发?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
如何快速生成可下载的建站源码工具?
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
完全自定义免费建站平台:主题模板在线生成一站式服务
建站168自助建站系统:快速模板定制与SEO优化指南
如何通过.red域名打造高辨识度品牌网站?
建站之星代理如何获取技术支持?
如何在万网主机上快速搭建网站?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
如何在IIS管理器中快速创建并配置网站?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
家庭服务器如何搭建个人网站?
,巨量百应是干嘛的?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
开源网站制作软件,开源网站什么意思?
利用JavaScript实现拖拽改变元素大小
家具网站制作软件,家具厂怎么跑业务?
如何用美橙互联一键搭建多站合一网站?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
ppt制作免费网站有哪些,ppt模板免费下载网站?
做企业网站制作流程,企业网站制作基本流程有哪些?
建站OpenVZ教程与优化策略:配置指南与性能提升
中山网站制作网页,中山新生登记系统登记流程?
如何在阿里云服务器自主搭建网站?
网站制作软件有哪些,制图软件有哪些?
建站之星logo尺寸如何设置最合适?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
深圳 网站制作,深圳招聘网站哪个比较好一点啊?
建站之星官网登录失败?如何快速解决?
如何破解联通资金短缺导致的基站建设难题?
寿县云建站:智能SEO优化与多行业模板快速上线指南
建站之星如何助力网站排名飙升?揭秘高效技巧
*请认真填写需求信息,我们会在24小时内与您取得联系。