AJAX не обновляет переменную

JQuery

Я делаю AJAX-запрос, который обновляет значение переменной (foo) с ответом с сервера. Вот код, который я использую:

//## My variable ##

var foo = "";


//## Send request ##

$.ajax({
    url: "/",
    dataType: "text",
    success: function(response) {
        foo = "New value:" + response;
    },
    error: function() {
        alert('There was a problem with the request.');
    }
});


//## Alert updated variable ##

alert(foo);

Проблема в том, что значениеfoo остается пустой строкой. Я знаю, что это не проблема со сценарием на стороне сервера, поскольку я получаю либо предупреждение об ошибке, либо, по крайней мере, строку."New value:"

Вот JSFiddle, который демонстрирует проблему:http://jsfiddle.net/GGDX7/

Почему ценностьfoo не меняется?

Чистый JS

Я делаю AJAX-запрос, который обновляет значение переменной (foo) с ответом с сервера. Вот код, который я использую:

//## Compatibility ##

var myRequest;
if (window.XMLHttpRequest) {
    myRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) {
    myRequest = new ActiveXObject("Microsoft.XMLHTTP");
}


//## My variable ##

var foo = "";


//## Response handler ##

myRequest.onreadystatechange = function() {
    if (this.readyState === 4) {
        if (this.status === 200) {
            foo = "New value:" + this.responseText;
        } else {
            alert('There was a problem with the request.');
        }
    }
};


//## Send request ##

myRequest.open('GET', "response.php");
myRequest.send();


//## Alert updated variable ##

alert(foo);

Проблема в том, что значениеfoo остается пустой строкой Я знаю, что это не проблема со сценарием на стороне сервера, поскольку я получаю либо предупреждение об ошибке, либо, по крайней мере, строку."New value:"

Вот JSFiddle, который демонстрирует проблему:http://jsfiddle.net/wkwjh/

Почему ценностьfoo не меняется?

Ответы на вопрос(5)

Ваш ответ на вопрос