Jquery 将Ajax请求结果存储到Javascript变量中
我试图将返回的ajax调用的结果存储为:var yValue,这在javascript中是可用的,但是返回yValue的结果总是0Jquery 将Ajax请求结果存储到Javascript变量中,jquery,Jquery,我试图将返回的ajax调用的结果存储为:var yValue,这在javascript中是可用的,但是返回yValue的结果总是0 <head> $.ajax({ url: 'test2.php', success: function(data) { var yValue= data; // data contains value 1; } }); alert (yValue); </hea
<head>
$.ajax({
url: 'test2.php',
success: function(data) {
var yValue= data; // data contains value 1;
}
});
alert (yValue);
</head>
返回的结果总是零或null,当我尝试使用警报框检查数据值时,它总是1
即使我使用数据作为结果存储到我创建的arraydynamicdata中,它也会返回0或NULL值:
var globalData = null;
$.ajax({
url: 'test2.php',
async: false,
success: function(data) {
globalData = data;
}
});
var j=j+1;
var CurrentDate1 = new Date((new Date()).getTime())
var hours=CurrentDate1.getHours()
var minutes=CurrentDate1.getMinutes()
var seconds=CurrentDate1.getSeconds()
if (minutes<=9) minutes="0"+minutes;
if (seconds<=9) seconds="0"+seconds;
var timer=hours+":"+minutes+":"+seconds+"";
// remove the first element
dynamicdata.splice(0, 1);
// add a new elemez
dynamicdata.push([timer, globalData]);
有人能帮忙吗
我试图存储返回的结果
不要试图反对AJAX的异步特性&这是首字母缩写的第一个字母的意思。这是一场你将输掉的战斗。如果您想使用AJAX,您应该停止按顺序思考和编写代码。您应该使用事件。您订阅诸如AJAX调用的成功回调之类的事件,并且只在这些事件中使用结果
因此,在您的情况下,不要尝试将结果存储在变量中,只需在回调中使用这些结果:
$.ajax({
url: 'test2.php',
success: function(data) {
// Here and only here you can hope to reliably use the results
// of an AJAX call
alert(data);
}
});
为了答案的完整性,而不是像您应该做的那样,您可以将async标志设置为false:
但是请注意,通过这样做,您不再使用AJAX。调用不是异步的。这是一个标准的同步调用,将在处理过程中阻止用户浏览器。这完全违背了AJAX的全部目的。不要这样做。您可以将ascync:false添加到ajax调用中:
var yValue;
$.ajax({
url: 'test2.php',
success: function(data) {
yValue = data; // data contains value 1;
},
async: false
});
alert(yValue);
但不建议这样做。您可能还需要了解JavaScript中的异步调用,您将大量使用它。下面是一个示例,说明如果您不习惯嵌套函数,如何组织代码:
$.ajax({
url: 'test2.php',
success: onReady
});
function onReady(data) {
// this is called when the ajax call is completed.
alert(data);
}
欢迎来到异步的精彩世界!你不能这么做。我曾想过使用返回的结果,但当我将值推送到javascript数组中时,返回的数据不知何故是空的。他的问题有解决办法吗?@user1115461,它为空是正常的。$.ajax方法立即返回。成功回调可以在很久以后调用。解决方法是在success回调中推送值:success:functiondata{someGlobalArray.pushdata;}它似乎无法按照您的方法将数据存储到arary中。返回的数据值为1,但当您检查数组中的值时,它为null@用户1115461,它能够存储数据。只是在它被存储之前,您正在尝试读取它。那是你的问题。因此,只检查成功回调内部的值,而不是外部的值。它不会存在于它之外。异步与否。
$.ajax({
url: 'test2.php',
success: onReady
});
function onReady(data) {
// this is called when the ajax call is completed.
alert(data);
}