尽我所能,我无法通过全局变量获取我的数据。我已经尝试了所有我能想到的东西,包括window.nuTime没有成功。
$.ajax({
cache: false,
type: 'POST',
url: 'servertime.asp',
data: {},
success: function (data) {
$('#servertime').html(data);
window.nuTime = data;
//alert(data);
},
error: function (jxhr, msg, err) {
$('#response').append('<li style="color:red">' + msg + '</li>');
}
});
alert(nuTime);
答案 0 :(得分:3)
Kolink是对的!你可以这样改进:
$.ajax({
cache: false,
type: 'POST',
url: 'servertime.asp',
data: {},
success: function (data) {
$('#servertime').html(data);
alertNuTime(data);
},
error: function (jxhr, msg, err) {
$('#response').append('<li style="color:red">' + msg + '</li>');
}
});
function alertNuTime(data) {
alert(data);
}
答案 1 :(得分:2)
调用alert(nuTime)
时,AJAX尚未返回。依赖于结果的任何东西必须在成功处理程序内(或由所述处理程序调用)
编辑:你可以实现这样的“延迟”:
function someFunctionThatDependsOnAjaxBeingDone(arg1,arg2,arg3) {
if( typeof nuTime === "undefined") {
var t = this, ac = arguments.callee, arg = arguments;
setTimeout(function() {ac.apply(t,arg);},100);
}
else {
// normal function stuff here
}
}
但是,除非您手动将arguments
转换为数组,否则这在某些浏览器中不起作用,并且返回值也无效。