我已经使用jQuery和AJAX几周了,我看到了两种不同的方法来在调用完成后"继续"脚本:success:和.done.
从jQuery文档的概要我们得到:
.done():说明:添加要在解析Deferred对象时调用的处理程序.
success:(.ajax()option):请求成功时调用的函数.
因此,在AJAX调用完成/解决之后,两者都做了一些事情.我可以随机使用其中一个吗?有什么区别,什么时候使用而不是另一个?
我想使用jQuery ajax从服务器检索数据.
我想将成功回调函数定义放在.ajax()块之外,如下所示.那么我需要声明变量dataFromServer如下所示,以便我能够使用成功回调中返回的数据吗?
我见过大多数人在.ajax()块内定义成功回调.如果我想在外面定义成功回调,那么以下代码是否正确?
var dataFromServer; //declare the variable first
function getData() {
$.ajax({
url : 'example.com',
type: 'GET',
success : handleData(dataFromServer)
})
}
function handleData(data) {
alert(data);
//do some stuff
}
Run Code Online (Sandbox Code Playgroud) 是否可以在另一个ajax请求中发出ajax请求?因为我需要来自第一个ajax请求的一些数据来发出下一个ajax请求.
首先,我使用Google Maps API获取LAT和LNG,之后我使用LAT和LNG来请求Instagram API(基于搜索的位置).
再次,这是可能的,如果是这样,怎么样?
$('input#search').click(function(e){
e.preventDefault();
var source=$('select[name=state] option:selected').text()+' '+$('select[name=city] option:selected').text()+' '+$('select[name=area] option:selected').text();
var source=source.replace(/ /g, '+');
if(working==false){
working=true;
$(this).replaceWith('<span id="big_loading"></span>');
$.ajax({
type:'POST',
url:'/killtime_local/ajax/location/maps.json',
dataType:'json',
cache: false,
data:'via=ajax&address='+source,
success:function(results){
// this is where i get the latlng
}
});
} else {
alert('please, be patient!');
}
});
Run Code Online (Sandbox Code Playgroud) 我是jQuery的新手,并使用一个旧的教程node.js,使用这个片段:
$(function () {
var roomId;
$.ajax({
type: "GET",
url: "/api/rooms"
}).success(function (rooms) {
roomId = rooms[0].id;
getMessages();
$.each(rooms, function (key, room) {
var a = '<a href="#" data-room-id="' + room.id + '" class="room list-group-item">' + room.name + '</a>';
$("#rooms").append(a);
});
});
[...]
});
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个错误
未捕获的TypeError:$ .ajax(...).success不是函数
在 }).success(function (rooms) {
我想知道这里有什么不对吗?