我有两个关于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 );
}
});
});
});
答案 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)。除了更多的属性。