jQuery.get()| jqueryAPI 2.2 中文手册- AspRain.cn 致力于Web开发技术翻译整理

jQuery API 2.2.0

jQuery.get()

分类:Ajax > 简写方法

返回: jqXHR

jQuery.get( [settings ] )

描述:使用一个HTTP GET请求,从服务器上载入数据。

加入于: 3.0
jQuery.get( [settings ] )
  • settings
    类型:PlainObject
    用来配置Ajax请求的键值对集合。除了url之外的所有属性都是可选的。可以针对$.ajaxSetup()中的任何选项设置默认值。参见jQuery.ajax( settings )以了解设置项的完整列表。type的选项会自动设置为GET
加入于: 1.0
jQuery.get( url [, data ] [, success ] [, dataType ] )
  • url
    类型:String
    一个字符串,它包含了发送请求的URL。
  • data
    类型:PlainObject or String
    一个纯对象或字符串,将和请求一起发送到服务器。
  • success
    类型:FunctionPlainObject data, String textStatus, jqXHR jqXHR )
    一个回调函数,在请求成功时执行它。如果提供了dataType,它是必不可少的,但是你可以使用nulljQuery.noop()作为占位符。
  • dataType
    类型:String
    期待来自服务器的数据类型。默认值:智能猜测(xml、json、script或html)。

这是$.ajax()函数的简写,它等同于:

$.ajax({
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

把返回的数据传递给success回调函数,返回的数据可能是一个XML根元素、文本字符串、JavaScript文件,或者JSON对象,取决于响应的MIME类型。它还传递了响应的文本状态。

自从jQuery 1.5,还会向success回调函数传递一个"jqXHR"对象(在jQuery 1.4中,传递XMLHttpRequest对象)。然而,因为JSONP以及跨域GET请求并不使用XHR,在那种情况中,传递给success回调函数的jqXHRtextStatus参数是undefind。

大多数实现案例将指定一个success处理函数:

$.get( "ajax/test.html", function( data ) {
  $( ".result" ).html( data );
  alert( "Load was performed." );
});

该示例取回了请求的HTML片段,并把它插入到网页上。

jqXHR对象

自从jQuery 1.5,所有的jQuery的Ajax方法会把一个XMLHttpRequest对象的超集。$.get()所返回的这个jQuery XHR对象,或者称“jqXHR”,实现了Promise对象的接口,给它一个Promise对象所有的属性、方法和行为(参见Deferred对象以了解更多信息)jqXHR.done()方法(针对成功状态)、jqXHR.fail()方法(针对出错状态)以及jqXHR.always()方法(针对结束状态,无论是成功还是出错),需取用一个函数参数,在请求终止时调用它们。欲得更多关于这个函数接收的参数的信息,请参阅$.ajax()文档的jqXHR对象部分。

Promise接口还允许jQuery的Ajax方法,包括$.get(),在一个请求上连缀多个.done().fail()以及.always()回调函数,甚至在请求已经结束时继续分配这些回调函数。如果请求已经结束,回调函数会立即被引发。

// 在制作请求之后立即分配回调函数
// 并针对这个请求,记住jqxhr对象
var jqxhr = $.get( "example.php", function() {
  alert( "success" );
})
  .done(function() {
    alert( "second success" );
  })
  .fail(function() {
    alert( "error" );
  })
  .always(function() {
    alert( "finished" );
  });
 
// 在这里实施别的工作 ...
 
// 为上面的请求设置别的结束函数
jqxhr.always(function() {
  alert( "second finished" );
});

弃用提醒

在jQuery 1.5中引入的回调函数jqXHR.success()jqXHR.error()jqXHR.complete()方法,在jQuery 1.5中被建议弃用。为了准备好它们最终被删除,请使用jqXHR.done()jqXHR.fail()jqXHR.always()来代替。

其它说明

  • 因为浏览器的安全限制,大多数Ajax请求要遵守同源策略;请求不能成功地从不同的域名、不同的子域名、不同的端口或者不同的协议检索到数据。
  • 如果jQuery.get()的请求返回一个错误代码,将它静默地失败,除非脚本还调用了全局的.ajaxError()方法。作为替代,自从jQuery 1.5,jQuery.get()返回的jqXHR对象的.error()也可以由error处理函数处理。
  • script请求和JSONP请求不用服众同域名策略的限制。

示例

请求test.php网页,但是忽略返回的结果。

$.get( "test.php" );

请求test.php网页,并随它发送额外数据(与此同时依然忽略返回的结果)。

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

把数据的数组传到服务器(与此同时忽略返回的结果)。

$.get( "test.php", { "choices[]": ["Jon", "Susan"] } );

提醒来自请求test.php的结果(HTML或者XML,取决于返回了什么)。

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

提醒来自请求test.cgi并发送额外的预载入数据(HTML或XML,取决于返回了什么)的结果。

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

获得test.php的网页内容,它会以json格式返回(<?php echo json_encode( array( "name"=>"John","time"=>"2pm" ) ); ?>),并把它添加到网页上。

$.get( "test.php", function( data ) {
  $( "body" )
    .append( "Name: " + data.name ) // John
    .append( "Time: " + data.time ); //  2pm
}, "json" );

如果网页上不能运行示例,请点击http://www.asprain.cn/jQueryAPI/jquery.get.htm查看示例。

如果你觉得本文档对你有用,欢迎给翻译作者支付宝打赏,支持翻译作者源源不断翻译更多有用的技术文档。