jquery ajax实例教程和一些高级用法

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

时间: 2024-10-10 21:49:08

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

JavaScript强化教程——jQuery AJAX 实例

什么是 AJAX?AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML).简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据,并在网页上进行显示.使用 AJAX 的应用程序案例:谷歌地图.腾讯微博.优酷视频.人人网等等. jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法. load() 方法从服务器加载数据,并把返回的数据放入被选元素中. 语法: $(selector).l

【JavaScript】jQuery Ajax 实例 全解析

jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯. 废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装以方便我们使用的方法,当然,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()的(这个后面会说到). 1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. url (String) :

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

Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦,Jquery大大简化了我们的操作,不用考虑浏览器的诧异了. 推荐一篇不错的jQuery Ajax 实例文章,忘记了可以去看看,地址为:http://www.cnblogs.com/yeer/archive/2009/07/23/1529460.html 和 http://www.w3school.com.cn/jquery/ $.post.$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax() 一.$

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

Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦,Jquery大大简化了我们的操作,不用考虑浏览器的诧异了. 推荐一篇不错的jQuery Ajax 实例文章,忘记了可以去看看,地址为:http://www.cnblogs.com/yeer/archive/2009/07/23/1529460.html 和 http://www.w3school.com.cn/jquery/ $.post.$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax() 一.$

jQuery Ajax 实例 详细介绍$.ajax、$.post、$.get的使用

Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦需要处理浏览器之间的兼容问题,Jquery大大简化了我们的这些操作操作,不用在考虑浏览器这方面的问题,可以直接使用! $.post.$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax() 一.$.ajax的一般格式 $.ajax({ type: 'POST', url: url , data: data , success: success , dataType: dataType }); 二.$.aj

jQuery Ajax 实例 全解析

jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯. 废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装以方便我们使用的方法,当然,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()的(这个后面会说到). 1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. url (String) :

ASP.NET Ajax和Jquery Ajax实例

在图书信息管理系统中,用到了Ajax和JQueryAjax,算是都体验了一把.刚开始用的时候很陌生,迟迟不敢下手.但是不动手什么时候也成功不了,就上网找例子,照着敲吧.当然,中间也遇到了一些小的错误,最终还是成功了. Ajax AJAX即"AsynchronousJavascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新,这意味着可以在不重新加载整个网页的情况下

转 ? C#中jQuery Ajax实例(一)

目标:在aspx页面输入两参数,传到后台.cs代码,在无刷新显示到前台 下面是我的Ajax异步传值的第一个实例 1.前台html代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"

jQuery Ajax实例各种使用方法详解

在jquery中ajax实现方法分类很多种,如有:load.jQuery.get.jQuery.post.jQuery.getScript.jQuery Ajax 事件.jQuery.ajaxSetup等等,前面几种为常用的也是用得最多的jquery ajax方法了,我下面给大家来详细介绍这里ajax实现方法.  jQuery.get( url, [data], [callback] ):使用GET方式来进行异步请求 这是一个简单的 GET 请求功能以取代复杂 $.ajax .请求成功时可调用回