无法在全局变量JS中存储值

时间:2014-01-27 08:41:42

标签: javascript jquery get

我有一段javaScript代码:

  var ws_path = "x";
 $.get('ws.config', function(data) {

      ws_path = data;
      alert(ws_path); //alert 1
 }, 
'text');

 alert(ws_path); // alert 2



  // output = alert 1 = value of data
   //         alert 2 = x

我有一个困惑'为什么它表现得像这样?

3 个答案:

答案 0 :(得分:3)

这是因为alert(ws_path);在从ws.config文件的服务器获取内容之前执行。您需要在get函数中编写代码,以确保在获取请求后修改变量。

<强> jQuery.get

答案 1 :(得分:1)

$.get请求完成之前触发第二个警报。

答案 2 :(得分:0)

重要的一点是:

$.get('ws.config' ....

是一种ajax调用,从服务器获取实际值需要一些时间,并且匿名函数有一个回调函数,当ajax调用收到响应时会调用它。

如果你想要一个有序的场景,你可以在你的代码中执行此操作:

var ws_path = "x";
$.get('ws.config', function(data) {
    ws_path = data;
    alert(ws_path);
    continueScenario();
}, 'text');

function continueScenario(){
    alert(ws_path);
}