一,原生JS实现ajax:
1
2
3
4
5
6
7
8
9
10
11
function AjaxGet()
        {
            var xhrObj;
            if(window.ActiveXObject) //ie5,6是以ActiveX方式声明的。
            {
                xhrObj = new ActiveXObject("Microsoft.XMLHTTP");
            }
            else if(window.XMLHttpRequest)
            {
                xhrObj = new XMLHttpRequest();
            }
            //下面这段代码需要注意,有可能会报Origin null is not allowed by Access-Control-Allow-Origin. 这个错误,原因是跨域问题,解决方法:
            //将该页面也放到网站目录下,同时请求的url要和访问网站的url中的主机地址一致,比如访问网站用localhost,那请求的url也要用localhost而不能用ip,
            //因为主机地址不一样,浏览器就认为你跨域请求了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
xhrObj.open("GET","http://localhost:9000/PHP/demo1-javascript/test.php",true); //第三个参数表示是否以异步方式发送请求,true表示以异步方式发送请求
          xhrObj.onreadystatechange=reqCallback;
          xhrObj.send(null); //采用GET方式提交,所有参数可以为null
 
          function reqCallback()
          {
              if(xhrObj.readyState == 4) // 4表示请求完成加载
              {
                  if(xhrObj.status==200) // http状态值为200
                  {
                      $("#divRes").text(xhrObj.responseText);
                  }
              }
          }
      }
      $(function(){
          $("#btnForm").click(function(){
              AjaxGet();
          });
      });
二,jquery中的ajax方法:
1,load方法:load(url [, data]  [, callback])  ,第二个参数为发送到服务器的key/value值。
1)简单加载
1
2
3
4
5
6
7
8
9
function LoadInfo()
        {
            $("#divRes").load(http://localhost:9000/PHP/zydemo/toload.html);  //加载到主页面后,主页面的样式会应用到加载的内容上。
        }
        $(function(){
            $("#btnForm").click(function(){
                LoadInfo();
            });
        });
2)筛选载入的html文档:
1
2
3
4
function LoadInfo()
        {
            $("#divRes").load(http://localhost:9000/PHP/zydemo/toload.html .more);  //仅加载class为 more的元素,注意url和 .more之间有一个空格。
        }
3) 详细的load用法:
1
2
3
4
5
6
$("#divRes").load("toload.html", {id:10, name:"zy"}, function(responseText, textStatus, xhrObj){
//responseText: 请求返回的内容
//textStatus:  请求状态:success, error, notmodified, timeout 4种。
//xhrObj:  XMLHttpRequest对象。
//注意,如果第二个参数不为空,则发起的是POST请求,否则是GET请求。
});
2,get 和 post方法:
1) get方法:发送请求时对传输的数据大小有限制,一般不能大于2KB,另外GET方式请求的数据会被浏览器缓存,二POST方式不会。
$.get(url  [,data]  [,callback],  [,type] );
//data:  发送的key/value会作为QueryString附加到请求的url中。
//type: 期待服务端返回内容的格式:xml, html,  script,  json,  text,  default
2)post方法,使用方式同get
 
3, getScript 和getJSON 方法:
1) $.getScript("test.js", callback);  //直接加载JS文件
 
2)

1
2
3
4
5
6
7
$.getJSON("test.json",  function(jsonData){
        $.each(jsonData, function(idx, val){
            //注意$.each()的用法:第一个参数为数组或对象。
            //第二个参数为一个回调函数,回调函数第一个参数为对象的成员或数组的索引,第二个参数为对应成员值或数组元素值。
            //要退出each循环,return false即可。
        } );
})
4,ajax方法:
最低层,功能最强,用法最灵活的方法。
$.ajax(options)
先上一个简单示例:
1
2
3
4
5
6
7
8
$.ajax({
    type:"GET",
    url:"info.aspx?id=40&idx=2&callback=?",
    dataType:"jsonp",
    success:function(data){
     
    }
});
$.ajax所有参数详细说明:
timeout: 请求超时时间,单位为毫秒。
data:  发送过去的参数,可以为对象或字符串。
dataType: 预期服务器返回的数据类型:xml,   html,  
        script(返回纯文本js代码,除非设置了cache参数,否则不会自动缓存结果),发起不在同一个域下的远程请求时,所有POST请求都将转换为GET请求。
        json,  jsonp,  text(返回纯文本字符串)。
beforeSend:  例子:
    beforeSend:function(xhrObj){
    //发送请求前可以修改XMLHttpRequest对象xhrObj,
    //如果在该函数中返回false,则会取消本次ajax请求。
    }
complete:例子:
    complete:function(xhrObj, textStatus){
        //请求完成后调用的回调函数,请求成功或失败时均调用。
    }
success:例子:
    success:function(data, textStatus){
        //data: 由服务器返回,并根据dataType参数进行处理后的数据。
    }
error: 例子:
    error: function(xhrObj, textStatus, errorThrown){
    // textStatus: 错误信息
    // errorThrown: 错误对象,一般textStatus和errorThrown只有其中一个包含信息。
global: 默认为true,表示是否触发全局ajax事件。
 
5,序列化问题:
$.get("getInfo.aspx", $("#form1").serialize(),  function(data, textStatus){
    //serialize会将表单数据值序列化为字符串后提交到服务端。
    //另外 serializeArray()返回json格式的数据。
} );
$.param函数:将一个数组或对象按照key/value进行序列化。
var obj = {id:1, name:"zy", age:22};
var pms = $.param(obj);
alert(pms);  //输出id=1&name=zy&age=22
 
6,ajax全局事件:
$.ajaxStart(callback);  // ajax请求开始时触发。
$.ajaxStop(callback);  // ajax请求结束时触发。
$.ajaxComplete: ajax请求完成时触发。
$.ajaxError: ajax请求发生错误时触发。
$.ajaxSend:  ajax发送前触发。
$.ajaxSuccess: ajax请求成功时执行的函数。
 
这几天码字真辛苦!
 

jquery中的ajax应用集锦的更多相关文章

  1. Jquery中的Ajax

    AJAX: * jQuery中的Ajax * 封装第一层 - 类似于原生Ajax的用法 * $.ajax() - 最复杂 * 选项 * url - 请求地址 * type - 请求类型,默认为GET ...

  2. jQuery入门(4)jQuery中的Ajax应用

    jQuery入门(1)jQuery中万能的选择器 jQuery入门(2)使用jQuery操作元素的属性与样式 jQuery入门(3)事件与事件对象 jQuery入门(4)jQuery中的Ajax()应 ...

  3. 【Java EE 学习 33 上】【JQuery样式操作】【JQuery中的Ajax操作】【JQuery中的XML操作】

    一.JQuery中样式的操作 1.给id=mover的div采用属性增加样式.one $("#b1").click(function(){ $("#mover" ...

  4. jquery中的ajax参数

    jquery中将ajax封装成了函数,我们使用起来非常方便,jquery会自动根据内容选择post还是get方式提交数据,并且会自动编码,但是要想完全掌握jquery中的ajax,我们必须将它的各个参 ...

  5. 用JQuery中的Ajax方法获取web service等后台程序中的方法

    用JQuery中的Ajax方法获取web service等后台程序中的方法 1.准备需要被前台html页面调用的web Service,这里我们就用ws来代替了,代码如下: using System; ...

  6. jQuery中操作Ajax方法小结

    有时候,越深入去了解一个点,越发觉得自己无知,而之前当自己晓得一两个片面的点还洋洋自得,殊不知,这是多么讽刺 jQery对Ajax操作进行了封装,常见的 ajax()属于最底层的方法,使用频率很高的 ...

  7. $.ajax()方法详解 jquery中的ajax方法

    jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(p ...

  8. 深入理解ajax系列第九篇——jQuery中的ajax

    前面的话 jQuery提供了一些日常开发中需要的快捷操作,例如load.ajax.get和post等,使用jQuery开发ajax将变得极其简单.这样开发人员就可以将程序开发集中在业务和用户体验上,而 ...

  9. 两强相争,鹿死谁手 — JQuery中的Ajax与AngularJS中的$http

    一.JQuery与AngularJS 首先,先简单的了解一下JQuery与AngularJS.从源头上来说,两者都属于原生JS所封装成的库,两种为平行关系. 二.Ajax请求与数据遍历打印 这里是Aj ...

随机推荐

  1. 多域名绑定同一IP地址,Node.js来实现

    本来打算用Nginx来实现,看了一会Nginx的配置,感觉又要费时间学习,就抱着试试看的心在网上搜,是否可以用Node.js来实现. 没想到,竟然搜到了.想试一下,但国内域名备案时间长达一个月,我肯定 ...

  2. AndroidStudio使用properties资源文件

    在Android项目开发中,为了一些公用资源使用方便,可以在assets资源文件夹中将需要用到的资源写成.properties或者.json的文件形式,并进行读取使用.在做html5+javascri ...

  3. HDU1078 FatMouse and Cheese 【内存搜索】

    FatMouse and Cheese Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Othe ...

  4. Cocos2d-X中国象棋的发展《五岁以下儿童》摆棋

    在博客上,以实现创建的游戏场景.而一些button,因为button落实到事件作出详细答复,需要使用一些功能摆棋.为此我特意button上的背面的具体实施, 在摆棋前先理清一下摆棋的思路: 1.创建一 ...

  5. HDU 1143 Tri Tiling(递归)

    意甲冠军:一些现有的1*2小盒子.求拼3*n多少个长方形的拼写. 思考: 因为它是一个递归式.肯定会遇到层的关系.仔细观察,研究发现,每层应设置2一层.(奇数层不能是矩形)而从显卡好最后一层的最后一战 ...

  6. matlab 矢量化编程(四)—— 标量函数转化为能够处理矢量的函数

    1. 组合的矢量实现 nchoosek(n, k) 的第二个参数在 matlab 下是不支持矢量化的,必须是标量形式.但 matlab 下的 gamma 函数,却可支持,矢量形式,又因为,gamma ...

  7. ZOJ 2319 Beatuiful People(单调递增序列的变形)

    Beautiful People Time Limit: 5 Seconds      Memory Limit: 32768 KB      Special Judge The most prest ...

  8. python代码风格检查工具──pylint

    pylint是一个python代码检查工具,可以帮助python程序员方便地检查程序代码的语法和风格,通过这个工具,可以使你的python代码尽量保持完美,哈哈.具体可以检查什么东西呢?比如你写了 f ...

  9. NS2网络模拟(5)-homework01.tcl

    1: #NS2_有线部分\homework01.tcl 2: 3: #创建两个结点,深圳到北京的TCP连接,图形将数据显示出来,计算吞吐率,画图分析 4: #tcp上层用ftp 5: #udp上层用c ...

  10. nyoj116士兵杀死(两)段树单点更新

    士兵杀敌(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:5 描写叙述 南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的. 小工是南将军手下的军师,南将军常常 ...