`

jQuery.ajax使用方法

阅读更多

jQuery.ajax( options )

参数:

  • options

返回值:

  • XMLHttpRequest

使用HTTP请求一个页面。

这是jQuery的低级AJAX实现。要查看高级抽象,见$.set、$.post等,这些方法更易于理解和使用。但是功能上有限制(例如,没有错误处理函数)。

警告:如果数据类型指定为"script",那么POST自动转化为GET方法。(因为script会作为一个嵌入页面的script标签进行载入)

$.ajax()函数返回它创建的XMLHttpRequest对象。在大部分情况下,你不需要直接操作此对象。通常,这个XMLHttpRequest对象主要用于需要手动中断XMLHttpRequest请求的时候。

注意:如果你指明了下面列出的数据类型,请确保服务端发送了正确的MIME响应类型(如. xml 的类型是 "text/xml")。错误的MIME类型能够导致脚本出现意想不到的问题。请查看AJAX的范例来了解数据类型的更多信息。

$.ajax()函数需要一个参数,一个包含有键/值对的对象,用于初始化并操作请求对象。

在jQuery 1.2版本中,如果你指明了一个JSONP回调函数,你就可以从其它的域中载入JSON类型的数据,写法类似于 "myurl?callback=?" 。jQuery会自动调用正确的方法名称来代替查询字符串,执行你指定的回调函数。或者,你也可以指定jsonp的数据类型的回调函数,此函数会自动添加到Ajax请求中。

参数选项:

async(true) 数据类型: Boolean
默认情况下,所有的请求都是异步发送的(默认为true)。 如果需要发送同步请求, 设置选项为false。注意,同步请求可能会暂时的锁定浏览器, 当请求激活时不能进行任何操作。
beforeSend 数据类型: Function
一个预处理函数用于在发送前修改XMLHttpRequest对象,设置自定义头部等。 XMLHttpRequest作为惟一的参数被传递。这是一个 Ajax 事件。
function (XMLHttpRequest) {
  this; // the options for this ajax request
}
cache(true) 数据类型: Boolean
jQuery 1.2中新添加的参数, 如果设为false,则会强制浏览器不缓存请求的页面。
complete 数据类型: Function
当请求完成时执行的函数(在成功或失败之后执行)。这个函数有2个参数: XMLHttpRequest对象和一个描述HTTP相应的状态字符串。 这是一个 Ajax 事件。
function (XMLHttpRequest, textStatus) {
  this; // the options for this ajax request
}
contentType("application/x-www-form-urlencoded") 数据类型: String
发送到服务器的数据的内容类型。默认是 "application/x-www-form-urlencoded", 适合大多数情况。
data 数据类型: Object,String
要发送给服务器的数据。如果不是字符串,那么它会被转化为一个查询字符串。在GET请求中它被添加到url的末尾。要防止这种自动转化,请查看processData选项。 数据对象必须是一组键/值对。如果键对应的值是数组,jQuery会将其值赋给同一个键属性。 例如 {foo:["bar1", "bar2"]} 变为 '&foo=bar1&foo=bar2'。
dataType( Intelligent Guess (xml or html)) 数据类型: String
期待由服务器返回值类型。如果没有明确指定,jQuery会根据实际返回的MIME类型自动的将responseXML或responseText传递给success指定的回调函数。有效的类型(返回的类型的结果值会作为第一个参数传递给success指定的回调函数)有:
  • "xml": 返回一个可以由jQuery处理的XML文档。
  • "html": 返回文本格式的HTML代码。包括求值后的脚本标记。
  • "script": 将响应作为Javascript语句求值,并返回纯文本。不缓存此脚本,除非设置了cache选项。设置为"script"类型会将post方法转换为get方法。
  • "json": 将响应作为JSON求值,并返回一个Javascript对象。
  • "jsonp": 使用JSONP载入一个JSON代码块. 会在URL的末尾添加"?callback=?"来指明回调函数。(jQuery 1.2以上的版本支持)
  • "text": 文本格式的字符串
      error 数据类型: Function
      请求失败时执行的函数。函数具有3个参数: XMLHttpRequest对象,一个描述产生的错误类型和一个可选的异常对象, 如果有的化。 这是一个Ajax 事件。
      function (XMLHttpRequest, textStatus, errorThrown) {
        // typically only one of textStatus or errorThrown 
        // will have info
        this; // the options for this ajax request
      }
      global(true) 数据类型: Boolean
      是否为当前的请求触发全局AJAX事件处理函数,默认值为true。设置为false可以防止触发像ajaxStart或ajaxStop这样的全局事件处理函数。这可以用于控制多个不同的Ajax事件。
      ifModified(false) 数据类型: Boolean
      只有响应自上次请求后被修改过才承认是成功的请求。是通过检查头部的Last-Modified值实现的。默认值为false,即忽略对头部的检查
      jsonp 数据类型: String
      在jsonp请求中重新设置回调的函数。这个值用于代替'callback=?'中的查询字符串。'callback=?'位于get请求中url的末尾或是post请求传递的数据中。因此设置 {jsonp:'onJsonPLoad'} 会将 'onJsonPLoad=?' 传送给服务器。
      processData(true) 数据类型: Boolean
      在默认的情况下,如果data选项传进的数据是一个对象而不是字符串,将会自动地被处理和转换成一个查询字符串,以适应默认的content-type--"application/x-www-form-urlencoded"。如果想发送DOMDocuments,就要把这个选项设置为false。
      success 数据类型: Function
      当请求成功时调用的函数。这个函数会得到二个参数:从服务器返回的数据(根据“dataType”进行了格式化)和一个描述HTTP相应的状态字符串。这是一个 Ajax 事件。
      function (data, textStatus) {
        // data could be xmlDoc, jsonObj, html, text, etc...
        this; // the options for this ajax request
      }
      timeout 数据类型: Number
      如果通过$.ajaxSetup设置了一个全局timeout,那么此函数使用一个局部timeout覆盖了全局timeout(单位为毫秒)。例如,你可以设置比较长的延迟给一个特殊的请求,同时其他所有请求使用1秒的延迟。有关全局延迟,见$.ajaxTimeout()。
      type("GET") 数据类型: String
      请求的类型 ("POST" 或 "GET"), 默认是 "GET"。注意:其他的HTTP请求方法,如PUT和DELETE,在这里也可以使用,当时它们并不被所有的浏览器支持。
      url(The current page) 数据类型: String
      请求发送的目标URL地址
      username 数据类型: String
      username可用于在响应一个HTTP连接时的认证请求。

实例

载入并执行一个JavaScript文件。

$.ajax({
  type: "GET",
  url: "test.js",
  dataType: "script"
});

保存数据到服务器,完成后通知用户。

$.ajax({
   type: "POST",
   url: "some.php",
   data: "name=John&location=Boston",
   success: function(msg){
     alert( "Data Saved: " + msg );
   }
 });

取得一个HTML页面的最新版本。

$.ajax({
  url: "test.html",
  cache: false,
  success: function(html){
    $("#results").append(html);
  }
});

同步载入数据。在执行请求的时候阻塞浏览器。这是在保证数据的同步性比交互更重要的情况下的一种更好的方法。

var html = $.ajax({
  url: "some.php",
  async: false
 }).responseText;

向服务器发送xml文档数据。通过设置processData选项为false,将数据自动转换为string的动作被禁止了。

var xmlDocument = [create xml document];
 $.ajax({
   url: "page.php",
   processData: false,
   data: xmlDocument,
   success: handleResponse
 });

load( url, [data], [callback] )

参数:

  • url (String): 装入页面的URL地址。
  • params (Map): (可选)发送到服务端的键/值对参数。
  • callback (Function): (可选) 当数据装入完成时执行的函数.
    function (responseText, textStatus, XMLHttpRequest) {
      this; // dom element
    }

返回值:

  • jQuery

装入一个远程HTML内容到一个DOM结点。 默认使用get方法发送请求,但如果指定了额外的参数,将会使用post方法发送请求。在 jQuery 1.2中,可以在URL参数中指定一个jQuery选择器,这会过滤返回的HTML文档,只取得文档中匹配选择器的元素。此语法类似于"url #some > selector"。

实例

载入文档的sidebar的导航部分到一个无序列表中。

$("#links").load("/Main_Page #p-Getting-Started li");

将feeds.html文件载入到id为feeds的div中。

$("#feeds").load("feeds.html");

同上,但是发送了附加的参数,并且在响应结束后执行一个自定义函数。

$("#feeds").load("feeds.php", {limit: 25}, function(){
   alert("The last 25 entries in the feed have been loaded");
 });

jQuery.get( url, [data], [callback] )

参数:

  • url (String): 装入页面的URL地址
  • Map(可选): (可选)发送到服务端的键/值对参数
  • callback (Function): (可选) 当远程页面装入完成时执行的函数
    function (data, textStatus) {
      // data可以是xmlDoc, jsonObj, html, text, 等...
      this; // the options for this ajax request
    }

返回值:

  • XMLHttpRequest

使用GET请求一个页面。

这是向服务器发送get请求的简单方法。它可以指定一个回调函数,在请求完成后执行(只有在请求成功时)。如果还需要设置error和success回调函数,则需要使用$.ajax。

实例

请求test.php页,忽略返回值.

$.get("test.php");

请求test.php页并发送附加数据(忽略返回值).

$.get("test.php", { name: "John", time: "2pm" } );

显示从test.php请求的返回值(HTML 或 XML, 根据不同返回值).

$.get("test.php", function(data){
  alert("Data Loaded: " + data);
});

显示向test.cgi发送附加数据请求的返回值 (HTML 或 XML, 根据不同返回值).

$.get("test.cgi", { name: "John", time: "2pm" },
  function(data){
    alert("Data Loaded: " + data);
  });

jQuery.getJSON( url, [data], [callback] )

参数:

  • url (String): 装入页面的URL地址
  • Map(可选): (可选)发送到服务端的键/值对参数
  • callback (Function): (可选) 当数据装入完成时执行的函数
    function (data, textStatus) {
      // data will be a jsonObj
      this; // the options for this ajax request
    }

返回值:

  • XMLHttpRequest

使用GET请求JSON数据。

在jQuery 1.2版本中,如果你指明了一个JSONP回调函数,你就可以从其它的域中载入JSON类型的数据,写法类似于 "myurl?callback=?" 。jQuery会自动调用正确的方法名称来代替查询字符串,执行你指定的回调函数。或者,你也可以指定jsonp的数据类型的回调函数,此函数会自动添加到Ajax请求中。注意: 请记住, that lines after this function will be executed before callback.

实例

从Flickr JSONP API中载入最新的四幅猫的图片

$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",
        function(data){
          $.each(data.items, function(i,item){
            $("<img/>").attr("src", item.media.m).appendTo("#images");
            if ( i == 3 ) return false;
          });
        });

从test.js载入JSON数据, 从返回的JSON数据读取name值。

$.getJSON("test.js", function(json){
  alert("JSON Data: " + json.users[3].name);
});

从test.js载入JSON数据, 传递一个附加参数,从返回的JSON数据读取name值。

$.getJSON("test.js", { name: "John", time: "2pm" }, function(json){
  alert("JSON Data: " + json.users[3].name);
});

显示向test.php发送请求的返回值 (HTML 或 XML, 根据不同返回值).

$.getIfModified("test.php", function(data){
  alert("Data Loaded: " + data);
});

显示向test.php发送请求的返回值 (HTML 或 XML, 根据不同返回值),提供了一个附加的参数.

$.getIfModified("test.php", { name: "John", time: "2pm" },
  function(data){
    alert("Data Loaded: " + data);
  });

列出从pages.php返回的查询结果,将返回的数组转化为一段HTML代码。

var id=$("#id").attr("value");
  $.getJSON("pages.php",{id:id},dates);
function dates(datos)
{ 
 $("#list").html("Name:"+datos[1].name+"<br>"+"Last Name:"+datos[1].lastname+"<br>"+"Address:"+datos[1].address);
}

jQuery.getScript( url, [callback] )

参数:

  • url (String): 装入页面的URL地址
  • callback (Function): (可选) 当数据装入完成时执行的函数
    function (data, textStatus) {
      // data应该是javascript
      this; // the options for this ajax request
    }

返回值:

  • XMLHttpRequest

使用GET请求JavaScript文件并执行。

在jQuery 1.2前, getScript只能从页面所在的主机载入脚本,1.2中, 你可以从任何主机载入脚本。警告: Safari 2 及其更老的版本不能在全局上下文中正确识别脚本。如果你通过getScript载入函数,请保证设置一个延迟来执行这个脚本。

实例

我们动态的载入一个新的官方jQuery颜色动画插件,载入后绑定一些动画效果到元素上。

$.getScript("http://dev.jquery.com/view/trunk/plugins/color/jquery.color.js", function(){
  $("#go").click(function(){
    $(".block").animate( { backgroundColor: 'pink' }, 1000)
      .animate( { backgroundColor: 'blue' }, 1000);
  });
});

载入test.js JavaScript文件并执行。

$.getScript("test.js");

载入test.js JavaScript文件并执行,当执行结束后显示一条警告信息。

$.getScript("test.js", function(){
  alert("Script loaded and executed.");
});

jQuery.post( url, [data], [callback], [type] )

参数:

  • url (String): 装入页面的URL地址
  • Map(可选): (可选)发送到服务端的键/值对参数
  • callback (Function): (可选) 当数据装入完成时执行的函数
    function (data, textStatus) {
      // data可能是 xmlDoc, jsonObj, html, text, 等...
      this; // the options for this ajax request
    }
  • String
    $.postJSON = function(url, data, callback) {
     $.post(url, data, callback, "json");
    };

返回值:

  • XMLHttpRequest

使用POST请求一个页面。

这是向服务器发送post请求的简单方法。它可以指定一个回调函数,在请求完成后执行(只有在请求成功时)。如果还需要设置error和success回调函数,则需要使用$.ajax。

ajaxComplete( callback )

参数:

  • callback (Function): 要执行的函数
    function (event, XMLHttpRequest, ajaxOptions) {
      this; // dom element listening
    }

返回值:

  • jQuery

当一个AJAX请求结束后,执行一个函数。这是一个Ajax事件

实例

当AJAX请求完成时显示一条信息。

$("#msg").ajaxComplete(function(request, settings){
   $(this).append("<li>Request Complete.</li>");
 });

ajaxError( callback )

参数:

  • callback (Function): 要执行的函数
    function (event, XMLHttpRequest, ajaxOptions, thrownError) {
      // thrownError only passed if an error was caught
      this; // dom element listening
    }

返回值:

  • jQuery

当一个AJAX请求失败后,执行一个函数。这是一个Ajax事件.

实例

当AJAX请求错误时显示一条信息。

$("#msg").ajaxError(function(request, settings){
   $(this).append("<li>Error requesting page " + settings.url + "</li>");
 });

ajaxSend( callback )

参数:

  • callback (Function): 要执行的函数
    function (event, XMLHttpRequest, ajaxOptions) {
      this; // dom element listening
    }

返回值:

  • jQuery

在一个AJAX请求发送时,执行一个函数。这是一个Ajax事件.

实例

当AJAX请求发出后显示一条信息。

$("#msg").ajaxSend(function(evt, request, settings){
   $(this).append("<li<Starting request at " + settings.url + "</li<");
 });

ajaxStart( callback )

参数:

  • callback (Function): 要执行的函数
    function () {
      this; // dom element listening
    }

返回值:

  • jQuery

在一个AJAX请求开始但还没有激活时,执行一个函数。这是一个Ajax事件.

实例

当AJAX请求开始(并还没有激活时)显示loading信息。

$("#loading").ajaxStart(function(){
   $(this).show();
 });

ajaxStop( callback )

参数:

  • callback (Function): 要执行的函数
    function () {
      this; // dom element listening
    }

返回值:

  • jQuery

当所有的AJAX都停止时,执行一个函数。这是一个Ajax事件.

实例

当所有AJAX请求都停止时,隐藏loading信息。

$("#loading").ajaxStop(function(){
   $(this).hide();
 });

ajaxSuccess( callback )

参数:

  • callback (Function): 要执行的函数
    function (event, XMLHttpRequest, ajaxOptions) {
      this; // dom element listening
    }

返回值:

  • jQuery

当一个AJAX请求成功完成后,执行一个函数。这是一个Ajax事件

实例

当AJAX请求成功完成时,显示信息。

$("#msg").ajaxSuccess(function(evt, request, settings){
   $(this).append("<li>Successful Request!</li>");
 });

jQuery.ajaxSetup( options )

参数:

  • Options: 用于Ajax请求的键/值对

为所有的AJAX请求进行全局设置。查看$.ajax函数取得所有选项信息。

实例

设置默认的全局AJAX请求选项。

$.ajaxSetup({
  url: "/xmlhttp/",
  global: false,
  type: "POST"
});
$.ajax({ data: myData });

serialize( )

返回值:

  • jQuery

以名称和值的方式连接一组input元素。返回值类似于: single=Single2&multiple=Multiple&multiple=Multiple3&radio=radio2 。在jQuery 1.2中。serialize方法实现了正确表单元素序列,而不再需要插件支持。

实例

连接表单元素的一组查询字符串,可用于发送Ajax请求。

function showValues() {
      var str = $("form").serialize();
      $("#results").text(str);
    }

    $(":checkbox, :radio").click(showValues);
    $("select").change(showValues);
    showValues();

serializeArray( )

返回值:

  • jQuery

连接所有的表单和表单元素(类似于.serialize()方法),但是返回一个JSON数据格式。

实例

从form中取得一组值,显示出来

function showValues() {
      var fields = $(":input").serializeArray();
      alert(fields);
      $("#results").empty();
      jQuery.each(fields, function(i, field){
        $("#results").append(field.value + " ");
      });
    }

    $(":checkbox, :radio").click(showValues);
    $("select").change(showValues);
    showValues();
分享到:
评论
1 楼 greatwqs 2011-12-03  
赞一个! 

相关推荐

    jquery.ajax-combobox, jQuery插件,创建一个文本框,可以以自动完成并下拉选择.zip

    jquery.ajax-combobox, jQuery插件,创建一个文本框,可以以自动完成并下拉选择 jquery.ajax-combobox 可以自动完成和pull-down-select的文本框的jQuery插件。 演示http://www.usamimi.info/~sutara/ajax-combobox

    jquery.unobtrusive-ajax.rar

    使用jQuery Unobtrusive Ajax,开发者可以快速地构建动态、响应式的Web应用,提供更好的用户体验。然而,为了充分利用其功能,你需要理解如何正确配置HTML标记以及如何与服务器端代码(如ASP.NET MVC Controller)...

    jquery.unobtrusive-ajax.min.js

    Ajax.BeginForm 提交,需要引用此文件才会执行OnSuccess

    jquery1.9.1 支持低版本ajax (ajax前jQuery.support.cors=true )

    jquery1.9.1 支持低版本ajax (ajax前jQuery.support.cors=true )

    Jquery.json.js

    jQuery提供了方便的方法来处理JSON数据,包括`$.getJSON()`和`$.ajax()`等函数,可以方便地从服务器获取JSON数据并将其转化为JavaScript对象,或者将JavaScript对象转换为JSON字符串发送到服务器。 **jQuery的get...

    jquery.ajaxupload.js

    AjaxUpload.js 就是一个js文件,里面封装了上传文件的代码,其实就是一个js的框架,利用它来更简单的实现文件的上传

    jQuery.Ajax 与action交互

    本篇文章将深入探讨如何使用jQuery.AJAX与Action进行数据交换,特别是涉及到XML数据格式时的情况。 首先,让我们了解jQuery.AJAX的基础。AJAX(Asynchronous JavaScript and XML)是一种创建动态网页的技术,允许...

    jQuery.XDomainRequest.js

    Implements automatic *Cross Origin Resource Sharing* support using the `XDomainRequest` object for IE8 and IE9 when using the [$.ajax](http://api.jquery.com/jQuery.ajax/) function in jQuery 1.5+. ...

    jquery.form.js和使用说明

    1. **异步表单提交**:通过使用`$.ajaxForm()`或`$.ajaxSubmit()`方法,可以实现异步表单提交。例如: ```javascript $("#myForm").ajaxForm({ success: function(response) { // 提交成功后的回调函数,response...

    jquery.paginate.js

    而jQuery.paginate.js正是一个基于jQuery的轻量级分页插件,其设计简洁、易于使用,能够快速为网页添加高效且美观的分页效果。 一、jQuery.paginate.js核心功能 1. 简单易用:jQuery.paginate.js的核心优势在于其...

    jquery form jquery.form.js

    在这个主题中,我们将深入探讨jQuery Form的核心功能、使用方法以及常见应用场景。 一、jQuery Form插件简介 jQuery Form插件主要由`jquery.form.js`脚本组成,它扩展了jQuery的$.ajax方法,提供了一种更加简单...

    jquery.min.js,很好用的基础插件

    5. **AJAX(Ajax)**:jQuery的`.ajax()`方法封装了XMLHttpRequest,使得异步数据交互更为便捷,同时提供了`.get()`, `.post()`等简化的接口。 6. **链式调用(Chaining)**:jQuery的每个方法返回的都是jQuery对象...

    jQuery.ajax()

    jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该函数,除非你需要操作不常用的选项,以获得更多的灵活性。 最简单的...

    JQuery.Ajax之错误调试帮助信息

    JQuery.Ajax之错误调试帮助信息

    jquery-1.12.4-jquery.min.js.zip

    4. **Ajax交互**:jQuery的`.ajax()`方法是进行异步数据交互的标准方式,它可以处理XMLHttpRequest的所有细节,如`$.ajax({url: "data.json", type: "GET", success: function(data) { ... }})`,用于从"data.json...

    基于jquery.masonry插件开发的瀑布流ajax动态加载数据功能

    在前端,我们可以使用jQuery的$.ajax()方法或者更简单的$.load()、$.get()、$.post()方法来发起Ajax请求。在本项目中,当用户滚动到页面底部时,触发Ajax请求,向服务器请求更多的数据。服务器响应后,这些新数据会...

    Jquery.Pagination.js + Jquery.Ajax + ASP.NET----无刷新分页Pagination 1.5.1

    Jquery.Pagination.js + Jquery.Ajax + ASP.NET----无刷新分页Pagination 1.5.1,是在原作者基础上修改的,因为Pagination 1.5.1与它的低版本有很大的区别,所以在此实例中增加了新版的使用方法

    jquery手册(jquery.cuishifeng.cn网页版)2

    5. **Ajax交互**: jQuery简化了Ajax请求,`.ajax()`是核心方法,可以设置URL、类型、数据等参数。`.get()`, `.post()`是简化的GET和POST请求。`.load()`可以将远程数据加载到指定元素中。 6. **链式操作**: jQuery...

    jquery $.ajax()的所有参数

    ajax的操作说明详解文档,jquery $.ajax()的所有参数

    jQuery.js下载 最全的jQuery.js下载

    在事件处理方面,jQuery使用`.on()`方法绑定事件监听器,如`$("button").on("click", function() {...})`,当用户点击按钮时执行指定的函数。同时,`.off()`方法可以解除事件绑定。还有许多预定义的事件处理,如`...

Global site tag (gtag.js) - Google Analytics