无法将返回的数据从 $.get 传递到 JavaScript 中的变量或数组
Cannot pass returned data from $.get to variable or array in JavaScript
我正在尝试 alert() $.get 返回的数据或更准确地将其分配给 var 数据
var data = [];
function outside(text) {
data.push(text);
}
$.get( "../../services/content/test.php", function( content ) {
outside(content);
});
alert(data);
在从 Ajax 请求中获取结果之前,您的alert
被调用。如果您在回调中执行alert
$.get
,则会有一个可用的输出,因此:
$.get( "../../services/content/test.php", function( content ) {
outside(content);
alert(data);
});
这是异步请求的正常行为。
Ajax 调用是异步的,因此无法保证数据在发出警报时包含值。 尝试在回调中提醒数据。
var data = [];
function outside(text) {
data.push(text);
}
$.get( "../../services/content/test.php", function( content ) {
outside(content);
alert(data);
});
当前代码执行如下:
var data = [];
function outside(text) {
data.push(text); //4. result is pushed to array.
}
//1. Ajax call is made
$.get( "../../services/content/test.php", function( content ) {
outside(content); //3. Ajax call returns and outside function is called
});
//2. data is alerted
alert(data);
您可以看到,在将 Ajax 响应推送到数组之前,数组会发出警报。
试试这个,
var data = [];
function outside(text) {
data.push(text);
alert(data);
}
$.get( "../../services/content/test.php", function( content ) {
outside(content);
});
$.get 是异步的,这意味着浏览器不会等待它完成以执行下一行
默认情况下,jQuery 执行对服务器的异步调用,然后将结果发送到作为参数传递的回调函数。这会导致在服务器响应请求并且内容已推送到 data
变量之前触发警报。
要考虑的另一件事是,您为outside
函数创建了一个不必要的包装器函数。如果outside
不是通用函数,而是仅以这种方式使用,则无需包装它 - 只需将其作为第二个参数传递即可。
var data = [];
function outside(text) {
data.push(text);
alert(data);
}
$.get( "../../services/content/test.php", outside);
相关文章:
- 将函数的上下文应用于javascript变量
- 如何通过ajax刷新JSF填充的javascript变量
- Javascript变量赋值|
- 限制javascript变量的最小/最大整数
- 来自文本输入null的html javascript变量
- 访问jsrender模板中的全局javascript变量并更新它
- 从数据库中获取数据并插入JavaScript变量
- 如何将javascript变量传递到Meteor Spacebars模板中
- 将JavaScript变量保存到Rails模型
- 在if语句下的html中使用javascript变量
- Javascript变量分配-按类别
- 操作javascript变量[HTML]以只显示文本
- 无法比较javascript变量
- 如何将smarty变量与javascript变量进行比较
- 如何使用PHP将javascript变量添加到mysql数据库中
- Javascript 变量使用 jquery 查找变量
- 重新加载页面时Javascript变量发生变化
- 在asp classic中使用javascript变量
- 全局Javascript变量变为null
- 如何向服务器端提交javascript变量