Javascript变量未在函数范围之外更改

Nat*_*ist 1 html javascript python jquery zope

我有以下功能:

function loginStudent() {
    var advisorKEY = "<dtml-var expr="py_get_alias()">";
    var studentKEY = "<dtml-var SID>";  
    var URL = "py_logging_sessionOpen?AdvisorKEY=" + advisorKEY + "&StudentKEY=" + studentKEY;
    key = "";
    $j.get(URL, function(data) { 
        key = data;
    });
    alert(key);
}
Run Code Online (Sandbox Code Playgroud)

py_loggin_sessionOpen只是我服务器上运行的python脚本.
它返回一个字符串.我需要该脚本的响应来确定下一个动作.该脚本完全返回值,我可以轻松地在一个检查值alert的范围内function(data)get.

我的主要问题是:如何在函数(数据)范围之外更改键值?

我假设因为我在外部定义它将充当全局变量.将它移到外面loginStudent()并不能解决问题.

有任何想法吗?

Dav*_*ger 6

$j.get()将是一个异步调用.这意味着它会触发,其余的执行仍在继续.任何依赖于该调用的东西都需要在回调中完成,如下所示:

$j.get(URL, function(data) { 
    key = data;
    alert(key);
} );
Run Code Online (Sandbox Code Playgroud)

如果其他一切都很好,你会看到你期望的价值.