这些AJAX方法有什么区别吗?

时间:2013-11-04 13:35:54

标签: ajax jquery

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

1)$.load()$.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 );
      }
    });
  });
});

3 个答案:

答案 0 :(得分:3)

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

  

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

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

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

答案 1 :(得分:2)

摘自jQuery手册.load

  

此方法是从服务器获取数据的最简单方法。它是   大致相当于$ .get(url,data,success),除了它是一个   方法而不是全局函数,它有一个隐式回调   功能。当检测到成功的响应时(即textStatus时)   是“成功”或“未修改”),. load()设置的HTML内容   匹配元素到返回的数据。这意味着大部分用途   方法可以很简单:

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

如果选择器没有匹配任何元素 - 在这种情况下,如果   document不包含id =“result”的元素 - Ajax   请求将不会被发送。

答案 2 :(得分:0)

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

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

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