# jQuery.get()

所属分类：Ajax > 快捷方法 英文文档：jQuery.get()

## jQuery.get( url [, data ] [, success(data, textStatus, jqXHR) ] [, dataType ] )返回: jqXHR

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

- #### 添加的版本: 1.0jQuery.get( url [, data ] [, success(data, textStatus, jqXHR) ] [, dataType ] )

  - url
    类型: String
    一个包含发送请求的URL字符串
  - data
    类型: PlainObject, String
    发送给服务器的字符串或Key/value键值对。
  - success(data, textStatus, jqXHR)
    类型: Function()
    当请求成功后执行的回调函数。
  - dataType
    类型: String
    从服务器返回的预期的数据类型。默认：智能猜测（xml, json, script, 或 html）。

这是一个Ajax功能的缩写，这相当于:

1 2 3 4 5 6 |
    $.ajax({  url: url,  data: data,  success: success,  dataType: dataType});

`success` 回调函数会传入返回的数据，是根据MIME类型的响应，它可能返回的数据类型包括XML根节点, 字符串, JavaScript 文件, 或者 JSON 对象。 同时还会传入描述响应状态的字符串。

在jQuery 1.5，`success`回调函数还传递一个“jqXHR”对象 （ 在 jQuery 1.4中 ，它传递的是`XMLHttpRequest`对象）。然而，由于JSONP形式和跨域的GET请求不使用XHR，在这些情况下， `jqXHR`和`textStatus`参数传递给success（成功）回调是 undefined 。

大多数实现将指定一个成功的回调处理程序：

1 2 3 4 |
    $.get('ajax/test.html', function(data) {  $('.result').html(data);  alert('Load was performed.');});

这个例子所请求到的HTML代码片段插在页面中。

#### The jqXHR Object（jqXHR 对象）

从jQuery 1.5开始，所有jQuery的Ajax方法都返回一个`XMLHTTPRequest`对象的超集。这个通过`$.get()`方法返回的jQuery XHR对象，或“jqXHR，”实现了 Promise 接口，使它拥有 Promise 的所有属性，方法和行为（见Deferred object获取更多信息）。`jqXHR.done()` (表示成功), `jqXHR.fail() (表示错误)`, 和 `jqXHR.always()` (表示完成, 无论是成功或错误) 方法接受一个函数参数，用来请求终止时被调用。关于这个函数接收参数的详细信息，请参阅 jqXHR Object 文档中的 $.ajax() 章节。

Promise 接口也允许jQuery的Ajax方法, 包括 `$.get()`, 在一个单独的请求中关联到 `.done()`, `.fail()`, 和 `.always()` 回调函数， 甚至允许你在请求已经结束后，指派回调函数。如果该请求已经完成，则回调函数会被立刻调用。

1 2 3 4 5 6 7 8 9 10 11 12 13 |
    // Assign handlers immediately after making the request,  // and remember the jqxhr object for this request  var jqxhr = $.get("example.php", function() {    alert("success");  })  .success(function() { alert("second success"); })  .error(function() { alert("error"); })  .complete(function() { alert("complete"); });   // perform other work here ...   // Set another completion function for the request above  jqxhr.complete(function(){ alert("second complete"); });

#### Deprecation Notice（推荐使用的注意事项：）

`jqXHR.success()`, `jqXHR.error()`, 和 `jqXHR.complete()` 回调方法 在jQuery 1.5中引进， 在jQuery 1.8中不赞成使用，已经过时。他们最终将被取消（移除），你的代码应该为次做好准备，使用 `jqXHR.done()`, `jqXHR.fail()`, 和 `jqXHR.always()` 代替.

### Additional Notes:（其他注意事项：）

- 由于浏览器的安全限制，大多数“Ajax”的要求，均采用同一起源的政策 ;即无法从不同的域，子域或协议中正确接收数据。
- 如果一个jQuery.get（）请求返回一个错误代码，它会静静的失败，除非脚本调用全局的.ajaxError（）方法。在jQuery 1.5， 通过jQuery.get()返回的`jqXHR`对象的`.error()`方法也可用于错误处理。
- Script和JSONP形式请求不受同源策略的限制。

## 例子:

#### Example: 请求 test.php 页面, 但是忽略返回结果.

1 |
    $.get("test.php");

#### Example: 请求 test.php 页面 并且发送url参数(虽然仍然忽视返回的结果)。

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

#### Example: 传递数组形式data参数给服务器 (虽然仍然忽视返回的结果).

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

#### Example: Alert 从 test.php请求的数据结果 (HTML 或者 XML,取决于返回的结果).

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

#### Example: Alert 从 test.cgi请求并且发送url参数的数据结果 (HTML 或者 XML,取决于返回的结果).

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

#### Example: 获取test.php的页面已返回的JSON格式的内容 (<?php echo json_encode(array("name"=>"John","time"=>"2pm")); ?>), 并且加到页面中.

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