Вот программа, которая вызывает ajax, чтобы прочитать значение из заголовка ответа http, установить переменную с именем _ecpop и использовать ее для последующих операций ...
Итак, я определил переменную глобально с именем _ecpop как
var _ecpop="";
и вот код вызова ajax:
if (typeof XMLHttpRequest != "undefined") {
_ec_req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
_ec_req = new ActiveXObject("Microsoft.XMLHTTP");
}
// make the request
_ec_req.open("GET", requestString, true);
// function to deal with response
_ec_req.onreadystatechange = function() {
if (_ec_req.readyState==4)
{
if (_ec_req.status==200)
{
var respHeaders = _ec_req.getAllResponseHeaders();
// strip out unnecessary headers
respHeaders = respHeaders.replace (/\n/g,"|X|");
var beg = respHeaders.indexOf("ECAcc (");
_ecpop = respHeaders.substring(beg+7,beg+10);
//make an if statement here...
console.log(_ecpop);
}
}
}
console.log(_ecpop);
, а остальная часть кода использует _ecpop.
Проблема в том, что браузер выполняет остальную часть кода с помощью _ecpop = "". то есть сначала второй console.log (_ecpop); возвращает пустой, а затем первый console.log (_ecpop); возвращает правильное значение.
Есть кто-нибудь, кто знает, как я могу обойти это? это так раздражает ...
Спасибо
Amir.