从 jQuery GET 请求获取变量
我需要从 GET 请求内部获取一个变量并在函数内部使用它。它不起作用。这是我的代码:
function chooseChosenOne() {
$.get("generate.php", function(data) {
var chosenOne = targetLocation[data.randomNumber];
}, "json");
alert(chosenOne);
}
我该如何解决这个问题?如何在 GET 请求中的该函数之外使用变量“chosenOne”?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您必须使用 jQuery 插件
getURLParam
You have to use the jQuery plugin
getURLParam
“chosenOne”仅存在于您的回调函数中,并且您的代码将在回调运行之前触发alert()...
'chosenOne' only exists inside your callback function, and your code will hit the alert() before the callback has even run...
当您调用
alert(chosenOne);
时,Ajax 回调尚未执行。 Ajax 是异步的。函数chooseChosenOne
不会等到Ajax调用完成,它会立即返回。您只能在回调中处理返回值:
因此您要做的就是让您的函数接受回调,一旦该值可用,该回调就会被调用:
另请参阅:
At the time you call
alert(chosenOne);
, the Ajax callback is not executed yet. Ajax is asynchronous. The functionchooseChosenOne
will not wait until the Ajax called finished, it will return immediately.You can only work the return value in the callback:
So what you have to do is to make your function accept a callback which gets called as soon as the value is available:
See also: