Jquery 从$.ajax请求中获取变量
我想在函数中运行ajax请求。基本上Jquery 从$.ajax请求中获取变量,jquery,Jquery,我想在函数中运行ajax请求。基本上 function doIt(id) { var myVar; $.ajax({ ... url etc... success: function(result) { myVar = "Some stuff" + result; console.log(myVar); } }) return myVar; } 但myvar并没有设置
function doIt(id) {
var myVar;
$.ajax({
... url etc...
success: function(result) {
myVar = "Some stuff" + result;
console.log(myVar);
}
})
return myVar;
}
但myvar并没有设置为我在成功后登录时的状态。如何获取函数返回的变量?
$。ajax是异步的,这意味着它在执行下一行之前不会完成。现在发生的是返回myVar代码>在成功
事件触发之前执行
关闭async
属性,这将从表面上解决您的问题:
function doIt(id) {
var myVar;
$.ajax({
... url etc...,
async: false,
success: function(result) {
myVar = "Some stuff" + result;
console.log(myVar);
}
})
return myVar;
}
但是,这会使浏览器挂起,因此最好的方法是将所有处理放在success
事件中
function doIt(id) {
var myVar;
$.ajax({
... url etc...,
async: false,
success: function(result) {
myVar = "Some stuff" + result;
console.log(myVar);
// TODO: Everything related to `myVar` here.
}
})
}
$.ajax
是异步的,这意味着它在执行下一行之前不会完成。现在发生的是返回myVar代码>在成功
事件触发之前执行
关闭async
属性,这将从表面上解决您的问题:
function doIt(id) {
var myVar;
$.ajax({
... url etc...,
async: false,
success: function(result) {
myVar = "Some stuff" + result;
console.log(myVar);
}
})
return myVar;
}
但是,这会使浏览器挂起,因此最好的方法是将所有处理放在success
事件中
function doIt(id) {
var myVar;
$.ajax({
... url etc...,
async: false,
success: function(result) {
myVar = "Some stuff" + result;
console.log(myVar);
// TODO: Everything related to `myVar` here.
}
})
}
ajax调用是aysnc,因此它并行发生,这就是您无法获得结果的原因
不能像那样返回值
var-myVar代码>
function doIt(id) {
$.ajax({
... url etc...
success: function(result) {
myVar = "Some stuff" + result;
console.log(myVar);
// do your logic here after the ajax success
}
})
}
ajax调用是aysnc,因此它并行发生,这就是您无法获得结果的原因
不能像那样返回值
var-myVar代码>
function doIt(id) {
$.ajax({
... url etc...
success: function(result) {
myVar = "Some stuff" + result;
console.log(myVar);
// do your logic here after the ajax success
}
})
}
不能从AJAX调用返回值。它是异步的。return
在AJAX调用完成之前运行
您需要在回调中执行与myVar
相关的所有逻辑。您不能从AJAX调用返回值。它是异步的。return
在AJAX调用完成之前运行
您需要在回调中执行与myVar
相关的所有逻辑。@justing,async false不是一个好方法,因为它会阻止用户直到完成,而不是在成功中执行您的操作。这通常是一个糟糕的主意,因为浏览器将挂起直到请求完成。这样做有一些原因,但没有多少好的原因。async:false
将锁定浏览器,直到调用完成。我建议不要这样做。相反,我建议您更改使用myVar
值的方式。@justing,async false不是好办法,因为它会阻止用户直到完成,而不是在成功中执行操作。这通常是一个糟糕的主意,因为浏览器将挂起直到请求完成。这样做有一些原因,但没有多少好的原因。async:false
将锁定浏览器,直到调用完成。我建议不要这样做。相反,我建议更改使用myVar
值的方式。