Проблема кажется очень странной. У меня есть вспомогательная функция AJAX в том же файле aspx, и событие onreadystatechange обрабатывается следующим образом
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4)
//do some opp
}
это отлично работает. я могу прочитать значение xmlhttp внутри обратного вызова.
И я переместил вспомогательные методы AJAX в дополнение к файлу js . И я создал метод что-то вроде этого
function AjaxHelper() {
this.GetValue = function(sData, sMethod, assembly, json, aSyncfunction) {
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
if (typeof(aSyncfunction) != "undefined" && aSyncfunction != null) {
xmlhttp.onreadystatechange = aSyncfunction
}
//Ajax open and send code here
}
}
Теперь я создаю функцию обратного вызова в моем файле aspx и вызываю функцию AjaxHelper.GetValue ()
var callback=function(){
if (xmlhttp.readyState == 4)
//do some opp
}
AjaxHelper.GetValue("test","getTest()","UIhelper","",callback)
И функция обратного вызова успешно вызывается каждый раз после изменения состояния, но я не могу ссылаться на переменную xmlhttp. его всегда не определено .
Я собираюсь выполнить его в контексте AJaxhelper, но это не так.
Может кто-нибудь напугать меня, как решить эту проблему