JQuery AJAX 方法总结:

JQuery中主要AJax方法:

一、load:

$(selector).load(url,[data],[callback]);从服务器中加载数据并将返回数据放入被选元素中。

参数含义:

url : 为希望加载URL,可以将JQuery的选择器添加到URL参数中。

data:为请求传入的参数,为键值对

callback :success(data,status,xhr)  (请求成功时才调用回调函数,失败的处理需要使用ajax函数)

data:包含调用成功时的结果内容

status:为调用状态,成功时返回"success",失败时返回"error"

xhr:返回XMLHttpRequest对象,根据该对象可获取 readyState 和 statues

通过查看源码可知load 的本质是通过ajax方法来实现,默认为GET方法,如果第二个参数params为函数则用GET方法,如果为对象则为POST方法。

例:

1.function handleclick()
{
   $("#responsediv").load("server.php",function(responsTxt,statusTxt,xhr){
       if(statusTxt === "error")
            this.innerHTML="Error!";
     });
}

发送方式为GET:

2.function handleclick()
{
   $("#responsediv").load("server.php",{"name":"LH"},function(responsTxt,statusTxt,xhr){
       if(statusTxt === "error")
            this.innerHTML="Error!";
     });
}

发送方式为POST:

JQuery load函数源码如下:

jQuery.fn.load = function( url, params, callback ) {
     if ( typeof url !== "string" && _load ) {
          return _load.apply( this, arguments );
     }

var selector, type, response,
          self = this,
          off = url.indexOf(" ");
     if ( off >= 0 ) {
          selector = jQuery.trim( url.slice( off ) );
          url = url.slice( 0, off );
     }

// If it‘s a function
     if ( jQuery.isFunction( params ) ) {

// We assume that it‘s the callback
          callback = params;
          params = undefined;

// Otherwise, build a param string
     } else if ( params && typeof params === "object" ) {
          type = "POST";
     }

// If we have elements to modify, make the request
     if ( self.length > 0 ) {
          jQuery.ajax({
               url: url,
               // if "type" variable is undefined, then "GET" method will be used
               type: type,
               dataType: "html",
               data: params
          }).done(function( responseText ) {

// Save response for use in complete callback
               response = arguments;

self.html( selector ?

// If a selector was specified, locate the right elements in a dummy div
                    // Exclude scripts to avoid IE ‘Permission Denied‘ errors
                    jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) :

// Otherwise use the full result
                    responseText );

}).complete( callback && function( jqXHR, status ) {
               self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
          });
     }

return this;
};

二,$.get() 和 $.post()

get:

$.get(URL,[data],[callback],[type]); 通过HTTP GET 方法从服务器上请求数据。

参数:

URL:请求页面的URL地址

data: 请求参数,这里的参数会加在http请求头url后面

callback:回调函数,回调函数的3个参数:success(data,status,xhr) (请求成功时才调用回调函数,失败的处理需要使用ajax函数)

type: 请求返回数据转化成该数据类型

post:

$.post(URL,[data],[callback],[type]);通过HTTP POST 方法从服务器上请求数据。

参数:

URL:请求页面的URL地址

data: 请求参数,这里的参数放在http报文里面。

callback:回调函数,回调函数的3个参数:success(data,status,xhr)(请求成功时才调用回调函数,失败的处理需要使用ajax函数)

type: 请求返回数据转化成该数据类型

GET和POST JQuery源码:

jQuery.each( [ "get", "post" ], function( i, method ) {
     jQuery[ method ] = function( url, data, callback, type ) {
          // shift arguments if data argument was omitted
          if ( jQuery.isFunction( data ) ) {
               type = type || callback;
               callback = data;
               data = undefined;
          }

return jQuery.ajax({
               url: url,
               type: method,
               dataType: type,
               data: data,
               success: callback
          });
     };
});

get 和 post 区别:

请求静态页面时,get请求浏览器会将数据缓存,post不会缓存

三、getJSON和getScript

getJSON:

$.getJSON(url,[data],[callback]); 通过HTTP GET 请求载入JSON数据。

参数:

url:请求页面地址

data:请求参数

callback:回调函数,success(data,status,xhr)(请求成功时才调用回调函数,失败的处理需要使用ajax函数)

JQuery 源码:

getJSON: function( url, data, callback ) {
          return jQuery.get( url, data, callback, "json" );
     }

getScript:

$.getScript(url,[callback]); 通过HTTP GET请求载入js脚本,并在加载完毕之后执行这个脚本

参数:

url:请求链接

callback:回调函数,success(data,status,xhr)(请求成功时才调用回调函数,失败的处理需要使用ajax函数)

JQuery 源码:

getScript: function( url, callback ) {
          return jQuery.get( url, undefined, callback, "script" );
     }

用getScript加载脚本的优点:

正如她的特点一样,优点很明显,那就是异步请求,在页面快速载入1KB的基本js之后,然后分段依次载入100KB的脚本,当然这是假设情况。我们熟悉的QQ空间就是利用这样的原理,一步一步的部署运行环境的,能够减少客户端的压力,并且页面的呈现不会因为js庞大而戛然而止或者止步不前。

缺点:

加重客户端对服务端的请求次数;

四、Ajax

$.ajax([setting]); JQuery ajax 的基础函数,从之前的JQuery 源码可以看出get,post,load本质都是调用ajax()函数来实现的。

参数全部为可选:

1.数据参数:

url:请求的页面地址,默认值为当前页面地址

type:http请求类型 GET/POST

data:键值对,来传递请求参数

async:默认为true,异步请求,false为同步请求

dataType:服务器返回数据的数据类型。如果不指定,jQuery 自动根据HTTP 包MIME信息来智能判断

  • "xml": 返回 XML 文档,可用 jQuery 处理。
  • "html": 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。
  • "script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 "cache" 参数。注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)
  • "json": 返回 JSON 数据 。
  • "jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
  • "text": 返回纯文本字符串

2.回调函数:

beforeSend:发送请求之前调用,XMLHttpRequest对象为唯一参数,一般可在发送请求之前修改XMLHttpRequest对象,如添加自定义HTTP头。

error:  请求失败时调用 参数有三个:XMLHttpRequset对象,错误信息,(可选)捕获的异常对象。

dataFilter:在请求成功之后调用。传入返回的数据以及 "dataType" 参数的值。传递给 success 回调函数。

success:请求成功后的回调函数,参数有3个:根据 dataType 参数进行处理后的数据,描述状态的字符串,XMLHttpRequest对象。

complete:请求完成后回调函数 (请求成功或失败之后均调用)。参数为XMLHttpRequest 对象和一个描述请求类型的字符串。

时间: 2024-08-06 01:38:02

JQuery AJAX 方法总结:的相关文章

jquery ajax 方法及各参数详解

jquery ajax 方法及各参数详解 1.$.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息. 参数列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET".注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分

jQuery AJAX 方法

jQuery AJAX 方法 AJAX 是一种与服务器交换数据的技术,可以在补充在整个页面的情况下更新网页的一部分. 下面的表格列出了所有的 jQuery AJAX 方法: 方法 描述 $.ajax() 执行异步 AJAX 请求 $.ajaxPrefilter() 在每个请求发送之前且被 $.ajax() 处理之前,处理自定义 Ajax 选项或修改已存在选项 $.ajaxSetup() 为将来的 AJAX 请求设置默认值 $.ajaxTransport() 创建处理 Ajax 数据实际传送的对象

MVC中使用Ajax提交数据 Jquery Ajax方法传值到action

Jquery Ajax方法传值到action <script type="text/javascript"> $(document).ready(function(){ $("#btn").click(function(){ $.ajax({ type: 'POST', url: "/Home/MyAjax", data: { val1: $("#txt1").val(), val2: $("#txt2&

再谈Jquery Ajax方法传递到action 【转载】

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://cnn237111.blog.51cto.com/2359144/984466 之前写过一篇文章Jquery Ajax方法传值到action,本文是对该文的补充. 假设 controller中的方法是如下: public ActionResult ReadPerson(PersonModel model)  {  string s = model.ToString();  ret

【转】jquery ajax 方法及各参数详解

在使用jquery的时候,我们经常用到jquery中对ajax的封装,下面对ajax函数的各参数详细说明和讲解,以便更好的理解和使用 $.get(url, data, callback,type) 和 $.post(url, data, callback, type). 1. jQuery.ajax( options ) : 通过 HTTP 请求加载远程数据 这个是jQuery 的底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等. $.ajax() 返回其创建的 XML

再谈Jquery Ajax方法传递到action(转)

之前写过一篇文章Jquery Ajax方法传值到action,本文是对该文的补充. 假设 controller中的方法是如下: public ActionResult ReadPerson(PersonModel model) { string s = model.ToString(); return Content(s); } public ActionResult ReadPersons(List<PersonModel> model) { string result = "&q

jquery ajax()方法传值乱码问题

 今天在用jquery.ajax()方法时,页面传的中文值到后台是乱码,后台总结了下解决这个问题有两个方法: 方法一: 用方法encodeURI() 后台不用做什么处理即可.我这的编码为UTF-8,如下所示: $.ajax({ url:"getIsAddWorkToday.action?1=1&workName="+encodeURI(empName), cache:false, type:"post", contentType:"text/h

jQuery.ajax()方法中参数详细解析

前言 在项目开发中,为了实现异步向服务端发起请求,最经常使用的就是jQuery.ajax方法了.刚开始需求比较简单,调用jQuery.ajax方法时要传的参数也就那几个常见的参数:url/data/dataType/type/cache/timeout.当时感觉这个接口使用起来很简单,直到最近项目中要实现一个发送 formData数据到服务端的需求时,我发现自己错了....原来jQuery.ajax方法中除了我用过的那几个外,还有如此之多!!于是我决定要去jQuery官网好好看看都有哪些我不知道

jQuery Ajax 方法应用。

jquery中的ajax方法比原生js简洁多了,写了一个小例子. 贴码: 1 <script> 2 $(function(){ 3 4 $('#getData').click(function(){ 5 6 $.ajax({ 7 type:'post', //get or post 8 url:'test.txt', //request url 9 dataType:'text',// response dataType Text or json 10 contentType:'applica