jquery ajax的调用方式:jquery.ajax(url,[settings]),jquery ajax常用参数:红色标记参数几乎每个ajax请求都会用到这几个参数,本文将介绍更多jquery ajax实例,后面会有一些ajax高级用法

query ajax的调用方式:jquery.ajax(url,[settings]),因为实际使用过程中经常配置的并不多,所以这里并没有列出所有参数,甚至部分参数默认值,就是最佳实践,根本没必要去自己定义,除非有特殊需求,如果需要所有参数,可以查看jquery api

jquery ajax常用参数:

$.ajax({
url: "test.html", //ajax请求地址
cache: false,//(默认: true,dataType为script和jsonp时默认为false)设置为 false 将不缓存此页面,建议使用默认
type:"GET",//请求方式 "POST" 或 "GET", 默认为 "GET"。注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。
dataType:"json", //根据返回数据类型可以有这些类型可选:xml html script json jsonp text
//发送到服务器的数据,可以直接传对象{a:0,b:1},如果是get请求会自动拼接到url后面,如:&a=0&b=1
//如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换为 "&foo=bar1&foo=bar2"。
data:{},
//发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。XMLHttpRequest 对象是唯一的参数。这是一个 Ajax 事件。如果返回false可以取消本次ajax请求。
beforeSend:function(xhr){
//this 默认为调用本次AJAX请求时传递的options参数
},
//context这个对象用于设置ajax相关回调函数的上下文。也就是说,让回调函数内this指向这个对象(如果不设定这个参数,那么this就指向调用本次AJAX请求时传递的options参数)。
//比如指定一个DOM元素作为context参数,这样就设置了success回调函数的上下文为这个DOM元素。
context: document.body,
//请求成功后的回调函数
success: function(data,textStatus){
//this 调用本次AJAX请求时传递的options参数 ,如果设置context来改变了this,那这里的this就是改变过的
},
//请求失败时调用此函数。有以下三个参数:XMLHttpRequest 对象、错误信息、(可选)捕获的异常对象。
//如果发生了错误,错误信息(第二个参数)除了得到null之外,还可能是"timeout", "error", "notmodified" 和 "parsererror"。
error:function(XMLHttpRequest, textStatus, errorThrown){
// 通常 textStatus 和 errorThrown 之中
// 只有一个会包含信息
// this 调用本次AJAX请求时传递的options参数
},
//请求完成后回调函数 (请求成功或失败之后均调用)。参数: XMLHttpRequest 对象和一个描述成功请求类型的字符串
complete:function(XMLHttpRequest, textStatus) {
//this 调用本次AJAX请求时传递的options参数
},
//一组数值的HTTP代码和函数对象,当响应时调用了相应的代码。例如,如果响应状态是404,将触发以下警报:
statusCode:{
404:function(){
alert('404,页面不存在');
}
}
});

| jquery ajax发送一个get请求,数据返回为json

  实战中最常用到的ajax方式获取数据,一般用get方式  

$.ajax({
type: "GET",
url: "page.php",
dataType:'json',
data: {id:1001},//也可以是字符串链接"id=1001",建议用对象
success: function(data){
console.log("返回的数据: " + data );
}
});

| jquery ajax发送一个post请求,数据返回为json

  实战中最常用到的ajax方式提交数据,提交一般用post方式

  

$.ajax({
type: "POST",
url: "page.php",
dataType:'json',
data: {name:"张三",sex:1},//也可以是字符串链接"name=张三&sex=1",建议用对象
success: function(data){
//实际操作的时候,返回的json对象中可能会有成功错误的判断标记,所以可能也需要判断一下
console.log("返回的数据: " + data );
}
});

| jquery ajax发送一个get请求,简写方式:

  其实就是对ajax的二次封装,大家可以对照ajax的底层api

 

//$.get("请求url","发送的数据对象","成功回调","返回数据类型");
$.get("test.cgi",{ name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
},'json');

| jquery ajax发送一个POST请求,简写方式:

  其实就是对ajax的二次封装,大家可以对照ajax的底层api

//$.post("请求url","发送的数据对象","成功回调","返回数据类型");
$.post("test.cgi",{ name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
},'json');

| jquery ajax经常用到的一个工具函数

ajax提交数据的时候,通常是提交一个表单,所以,序列化表单数据就非常有用,如:$("form").serialize()

//完整实例如:(表单html结构不在写)
$("form").on("submit",function(){
var url = this.action; //可以直接取到表单的action
var formData = $(this).serialize();
$.post(url,formData,
function(data){
//返回成功,可以做一个其他事情
console.log(data);
},'json'); //阻止表单默认提交行为
return false
})

| jquery ajax请求成功回调改写成连写方式.done

ajax请求成功通常是使用回调的方式处理返回数据,其实jquery中也可以使用连写方式而不是回调的方式。如下:

//该参数可以是一个函数或一个函数的数组。当延迟成功时,done中函数被调用。回调执行是依照他们添加的顺序。
//一旦deferred.done()返回延迟对象,延迟对象的其它方法也可以链接到了这里,包括增加.done()方法。当延迟解决,web前端开发
$.get("ajax.php").done(function() {
//延迟成功
alert("ok");
}).fail(function(){
//延迟失败;
alert("$.get failed!");
});

jquery ajax连写方式还有一个二合一的方法.then,.then还可以写多个,后面的.then可以使用前面.then中的结果

$.get("test.php").then(
function(){
//延迟成功
},
function(){
//延迟失败;
}
);

jquery ajax还有一个jQuery.when方法

提供一种方法来执行一个或多个对象的回调函数,延迟对象通常表示异步事件。 如果单一延迟传递给jQuery.when ,它是通过这个方法和延迟对象附加的其他方法可访问绑定的回调函数返回的,如defered.then 。
当延迟得到解决或者拒绝,通常的代码创建了原来的延迟,适当的回调将被调用。 如下:

//两个全部请求成功才会执行回调  此api在jquery api的 “工具”一栏下面有详细介绍
$.when($.ajax("p1.php"), $.ajax("p2.php"))
.then(function(){
//两个全部请求成功
}, function(){
//任何一个执行失败
});

jquery ajax的一个实战例子,ajax请求服务集中到service.js中

这里把jquery ajax请求写成一个服务,比如service.js中有如下代码:

//每次都要重复的ajax代码和一些数据处理,全局提示都可以写到这里面了,当然这里面不要有业务逻辑,只做些数据处理和部分提示
function myService(){
return {
query: function (data) {
var _data = data||{};
return $.get("test.php",_data).then(
function(){//延迟成功},
function(){//延迟失败;}
);
},
submit: function (data) {
var _data = data||{};
return $.post("test.php",_data).then(
function(){},
function(){}
);
}
}
}
//当然这里面的 代码应该做模块化处理,而不是直接向这样声明一个全局的myService

本文链接:jquery ajax实例教程和一些高级用法http://www.51xuediannao.com/javascript/jquery_ajax.html

jquery ajax实例教程和一些高级用法的更多相关文章

  1. JavaScript强化教程——jQuery AJAX 实例

    什么是 AJAX?AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML).简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据 ...

  2. jQuery Ajax 实例 ($.ajax、$.post、$.get)

    jQuery Ajax 实例 ($.ajax.$.post.$.get) 转 Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦,Jquery大大简化了我们的操作,不用考虑浏览器的诧异了. ...

  3. jQuery AJAX实例

    <html><head><title>jQuery Ajax 实例演示</title></head><script language= ...

  4. jQuery Ajax 实例 ($.ajax、$.post、$.get)【转载】

    本文转载自:http://jun1986.iteye.com/blog/1399242 Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦,Jquery大大简化了我们的操作,不用考虑浏览器的 ...

  5. jQuery Ajax 实例 ($.ajax、$.post、$.get)转

    Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦,Jquery大大简化了我们的操作,不用考虑浏览器的诧异了. 推荐一篇不错的jQuery Ajax 实例文章,忘记了可以去看看,地址为:ht ...

  6. Windows 8实例教程系列 - 数据绑定高级实例

    原文:Windows 8实例教程系列 - 数据绑定高级实例 上篇Windows 8实例教程系列 - 数据绑定基础实例中,介绍Windows 8应用开发数据绑定基础,其中包括一些简单的数据绑定控件的使用 ...

  7. 转:jQuery Ajax 实例 全解析

    jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯. 废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对 ...

  8. C#中jQuery Ajax实例(二)

    上一篇写了一个简单的Ajax异步程序,这一次同样是简单的程序,只不过这次先把参数传到一般处理程序(后缀为ashx)中,再把结果传回到页面. 1.html代码: <html xmlns=" ...

  9. C#中jQuery Ajax实例(一)

    目标:在aspx页面输入两参数,传到后台.cs代码,在无刷新显示到前台 下面是我的Ajax异步传值的第一个实例 1.前台html代码: <html xmlns="http://www. ...

随机推荐

  1. Asp.Net MVC Identity 2.2.1 使用技巧(六)

    使用用户管理器之角色管理 一.建立模型,这里我们其实在之前的技巧(五)已经建好了. 二.建立控制器RolesAdminController 1.在controllers文件夹上点右键>添加> ...

  2. Guava包学习-Multimap

    它和上一章的MultiSet的继承结果很相似,只不过在上层的接口是Multimap不是Multiset. Multimap的特点其实就是可以包含有几个重复Key的value,你可以put进入多个不同v ...

  3. Django中的CBV和FBV

    Django中的CBV和FBV 一.  CBV CBV是采用面向对象的方法写视图文件. CBV的执行流程: 浏览器向服务器端发送请求,服务器端的urls.py根据请求匹配url,找到要执行的视图类,执 ...

  4. php redis中文手册

    phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系 很有用;以下是redis官方提供的命令使用技巧: 下载地址如下: https://github.com/ow ...

  5. ethereumjs-vm/examples/run-transactions-complete

    1.设置账户: ethereumjs-vm/examples/run-transactions-complete/key-pair.json { "secretKey": &quo ...

  6. easyUi的一些常用方法

    目录: 1.获取表格的pageNumber和pageSize 2.获取/设置下拉列表的选中值 3.下拉列表的输入框的禁用 1.获取表格的pageNumber和pageSize var pageNumb ...

  7. PyTorch Notes | PyTorch 编程实践笔记

    [ 今天最开心的事情! ] PyTorch的stable版本更新为1.0之后,原本3D模型无脑out of memory.3D模型torch.backends.cudnn.benchmark必须Fal ...

  8. linux中安装jdk以及eclipse的安装

    最近将系统换成了linux(ubuntu14.04),随之而来的是各种软件的配置,环境的配置,因此趁机将自己的过程整理出来. 1:linux中怎么安装jdk 1 首先现在jdk源文件http://ww ...

  9. 面试 : C语言 功底 被 鄙视了

    第一道:被鄙视 的 C语言语法问题 请看 下面 程序 : 错误程序: void GetMemory( char *p ){ p = (char *) malloc( 100 );}void Test( ...

  10. Adapter(适配器)模式

    1. 概述: 接口的改变,是一个需要程序员们必须(虽然很不情愿)接受和处理的普遍问题.程序提供者们修改他们的代码;系统库被修正;各种程序语言以及相关库的发展和进化.  例子1:iphone4,你即可以 ...