一,原生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. 华为云软件开发云VS开发痛点=?

    在软件开发的过程中,是不是总会遇到这些问题: 搭建一个开发环境,用了九牛二虎之力,悲催的是竟然用不了…… 团队同事突然出差,他写的代码出现问题,我却不会改…… 提升软件件质量靠代码,交叉看.找大拿,简 ...

  2. git merge与rebase

    参考这篇文章 Git 之 merge 与 rebase 的区别  文章2 另外,使 rebase出现冲突后,先修改冲突,然后git add 某文件(我使用add  .经常有问题),然后git reba ...

  3. TEdit,TMemo背景透明(SetWindowLong(WS_EX_TRANSPARENT)增加透明风格)

    The component below works perfectly, except for the following problem: 1) Saves the component below ...

  4. 什么是“恶意代码”——————【Badboy】

    恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到还有一段程序中,从而达到破坏被感染电脑数据.执行具有入侵性或破坏性的程序.破坏被感染电脑数据的安全性和完整性的目的. 按传播方式,恶意代码能够分 ...

  5. PL/SQL Developer跑在Oracle 64位数据库上初始化错误

    安装完Oracle(64位).PL/SQL Developer后执行PL/SQL出现例如以下的错误: 网上查资料说,我的PL/SQL Developer与ORACLE不兼容,即PL/SQL不支持64位 ...

  6. Windows下MinGW跨平台编译和使用log4cpp

    Log4cpp 是C++开源日志库,为 C++ 应用程序开发中提供了日志的追踪和调试功能,基于 LGPL 开源协议,移植自 java 的日志项目 log4j, 并在 api 上保持了一致性. 1. 环 ...

  7. ASP.Net Core 2.2使用SQLite数据库unable to open database file

    原文:ASP.Net Core 2.2使用SQLite数据库unable to open database file 最近把项目更新到了ASP.Net Core 2.2,发布之后发现在IIS下使用SQ ...

  8. SSH框架的搭建与配置文件的书写格式

    通常Java Web 开发的时候,我们一般会采用三大框框架的整合来架构,这样做主要是为方便维护.但是有时候会忘了一些配文件(*.xml)的格式头,这里主要就三大框架Spring.struts.hibe ...

  9. OpenGL(二十二) gluBuild2DMipmaps 加载Mip纹理贴图

    当纹理被用于渲染一个面积比它本身小很多的对象时,会由于纹理图像的降采样率不足而导致混叠现象,主要的表现特征是纹理图像的闪烁,出现纹理躁动.特别是在场景远近移动变换时,这种闪烁情况更为明显,严重可能会影 ...

  10. ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 Entity Fram ...