0

我有两个关于 jQuery AJAX 的问题。

$.load()1)和之间有什么区别$.ajax() used with type: 'GET'吗?他们似乎做同样的工作。

2)这个问题与下面的代码有关。如果我根本不写“type: GET”行会怎样?意思是一样的吗?

$(document).ready(function() {
  $('#update').click(function() {
    $.ajax({
       type: 'GET',
       url: 'hello-ajax.html',
       dataType: 'html',
       success: function(html, textStatus) {
      $('body').append(html);
      },
      error: function(xhr, textStatus, errorThrown) {
      alert('An error occurred! ' + ( errorThrown ? errorThrown :
      391
      xhr.status );
      }
    });
  });
});

有什么不同吗

$(document).ready(function() {
  $('#update').click(function() {
    $.ajax({
       url: 'hello-ajax.html',
       dataType: 'html',
       success: function(html, textStatus) {
      $('body').append(html);
      },
      error: function(xhr, textStatus, errorThrown) {
      alert('An error occurred! ' + ( errorThrown ? errorThrown :
      391
      xhr.status );
      }
    });
  });
});
4

3 回答 3

3

这直接来自 jQuery Docs ( http://api.jquery.com/load/ )

.load() 方法与 $.get() 不同,它允许我们指定要插入的远程文档的一部分。这是通过 url 参数的特殊语法实现的。如果字符串中包含一个或多个空格字符,则假定字符串中第一个空格之后的部分是确定要加载的内容的 jQuery 选择器。

由于$.get()只是$.ajax()“数据:'获取'”的简写,看来唯一的主要区别是执行上述操作的能力(导入文档的部分部分)。

编辑:要回答您的第二个问题,GET 是 $.ajax() 调用的默认数据类型,POST 是您的另一个选择。你可以在这里阅读一些关于 POST 的内容(http://api.jquery.com/jQuery.post/

于 2013-11-04T13:40:08.877 回答
2

摘自 jQuery 手册.load

此方法是从服务器获取数据的最简单方法。它大致相当于 $.get(url, data, success) ,只是它是一个方法而不是全局函数,并且它具有隐式回调函数。当检测到成功响应时(即当 textStatus 为“success”或“notmodified”时),.load() 将匹配元素的 HTML 内容设置为返回的数据。这意味着该方法的大多数用途都非常简单:

$( "#result" ).load( "ajax/test.html" );

如果选择器没有匹配任何元素(在这种情况下,如果文档不包含 id="result" 的元素),则不会发送 Ajax 请求。

于 2013-11-04T13:40:40.057 回答
0

我想不同之处在于 .load() 函数允许将结果定位到 DOM 元素中。像这样

$( "#target" ).load( "source.html" );

并且 ajax() 方法返回一个可以被操纵的对象(例如 JSON)。等等,除了更多的属性。

于 2013-11-04T13:49:06.283 回答