Jquery 警告正在刷新ajax调用的返回值
(1.您觉得拥有一个可以调用ajax(url、数据、异步)的全局jquery ajax“助手”有用吗 如果我调用一个函数,该函数放置一个GET并返回成功响应Jquery 警告正在刷新ajax调用的返回值,jquery,javascript-events,event-loop,Jquery,Javascript Events,Event Loop,(1.您觉得拥有一个可以调用ajax(url、数据、异步)的全局jquery ajax“助手”有用吗 如果我调用一个函数,该函数放置一个GET并返回成功响应 alert(ajax('localhost/hello','',false); 如果我发出警报(get_ajax()),我会收到“未定义”的警报。。即使有返回值 我看到这是一个事件循环问题,但我在ajax调用中使用了async:false。思想?谢谢。您的ajax函数包装了$。ajax调用不会返回任何内容:这就是未定义的的来源。要在警报示
alert(ajax('localhost/hello','',false);
如果我发出警报(get_ajax()),我会收到“未定义”的警报。。即使有返回值
我看到这是一个事件循环问题,但我在ajax调用中使用了async:false。思想?谢谢。您的
ajax
函数包装了$。ajax
调用不会返回任何内容:这就是未定义的的来源。要在警报
示例中获得一些值,您应该在函数底部添加一个return语句
var val = '';
$.ajax({
// ....
success: function(response) {
val = response;
},
// ....
});
return val;
要获得带有响应的警报,应执行以下操作:
success: function(response) {
alert(response);
},
您的ajax
函数包装了$。ajax
调用不会返回任何内容:这就是未定义的的来源。要在警报
示例中获得一些值,您应该在函数底部添加一个return语句
var val = '';
$.ajax({
// ....
success: function(response) {
val = response;
},
// ....
});
return val;
要获得带有响应的警报,应执行以下操作:
success: function(response) {
alert(response);
},
这是被问了一百万次的问题之一,但几乎不可能搜索到。不管怎样,问题是当你从这里回来的时候
success: function(response) {
return response;
}
…您不是从ajax()
函数返回,而是从匿名success
函数返回。要从主函数返回值,必须将字符串保存到变量中,以便从正确的函数返回
var val = '';
$.ajax({
// ....
success: function(response) {
val = response;
},
// ....
});
return val;
请注意,这仅在进行同步调用时有效。对于异步调用,最好给出一个回调函数作为参数,并将其用作成功函数。这是已经被问了一百万次的问题之一,但几乎不可能搜索。不管怎样,问题是当你从这里回来的时候
success: function(response) {
return response;
}
var val = '';
$.ajax({
// ....
success: function(response) {
val = response;
},
// ....
});
return val;
…您不是从ajax()
函数返回,而是从匿名success
函数返回。要从主函数返回值,必须将字符串保存到变量中,以便从正确的函数返回
var val = '';
$.ajax({
// ....
success: function(response) {
val = response;
},
// ....
});
return val;
请注意,这仅在进行同步调用时有效。对于异步调用,最好将回调函数作为参数,并将其用作成功函数。对于同步调用,我相信您会这样做
var val = '';
$.ajax({
// ....
success: function(response) {
val = response;
},
// ....
});
return val;
var data;
$.ajax({
...
async: false,
success: function(response) {
data = response;
}
});
return data;
对于同步呼叫,我相信您会这样做
var data;
$.ajax({
...
async: false,
success: function(response) {
data = response;
}
});
return data;
但我需要回复。如果我在success中使用alert(),则会得到一个值,但在我对ajax函数使用alert()时则不会。如果它是异步的,则无法直接获得响应,因为ajax调用没有阻塞:它仅在调用success
回调函数后才可用。无论您想对这些数据做什么,您都必须重构代码,以允许从success
回调更新它。您不能在ajax调用完成后将受此调用影响的所有代码移到要使用的位置吗?是我的错误,我忽略了将其设置为Synchronous,但我需要返回响应。如果我在success中使用alert(),则会得到一个值,但在我对ajax函数使用alert()时则不会。如果它是异步的,则无法直接获得响应,因为ajax调用没有阻塞:它仅在调用success
回调函数后才可用。无论您想对这些数据做什么,您都必须重构代码,以允许从success
回调更新它。您不能在ajax调用完成后将受此调用影响的所有代码移动到所使用的位置吗?如果是我的错误,我忽略了将其设置为synchronous