Страницы: 1
помогите разобраться с видимостью объектов.
var MyEXT_xmlHttp_post = new XMLHttpRequest(); var MyEXT = { //init init: function() {}, //main getXmlString: function (doc1){}, process:function (doc){ }, vote:function(doc){ var xmlString = (new XMLSerializer).serializeToString(doc); if (MyEXT_xmlHttp_post){ try{ MyEXT_xmlHttp_post.open("POST", "http://myServer.com/post.php", true); MyEXT_xmlHttp_post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); MyEXT_xmlHttp_post.onreadystatechange = MyEXT.handleRequestStateChange2;///############### MyEXT_xmlHttp_post.send(xmlString); //alert (xmlString); } catch (e){ alert("Sending error :" + e.toString()); } } window.close() ; //alert(xmlString); }, handleRequestStateChange2:function (){ // function called when the state of the HTTP request changes if (MyEXT_xmlHttp_post.readyState == 4) { if (MyEXT_xmlHttp_post.status == 200) { try{ var xmlResponse = MyEXT_xmlHttp_post.responseXML; //alert (xmlResponse); }catch(e){ alert("Error reading the response: " + e.toString()); } } else { alert("There was a problem retrieving the data:\n" + MyEXT_xmlHttp_post.statusText); } } }, };
MyEXT_xmlHttp_post - объект создан, запрос отправляется, когда приходит ответ сервера в функции handleRequestStateChange2 появляется ошибка,что объект MyEXT_xmlHttp_post не определен.
В чем могут быть проблемы? можно ссылку на литературу по теме.
Отсутствует
Похожая проблема описывается здесь http://forum.mozilla-russia.org/viewtopic.php?id=24318
Пока решение не найдено.
Подскажите расширения использующие XmlHttpRequest , может в коде этого расширения найду ответ.
Отсутствует
Мне не удалось воспроизвести проблему на инструментах, выполняющих тестовый код в function () {} (или, из-за несоответствия тестового url). Тест, определяющий MyEXT_xmlHttp_post на верхнем уровне js-файла делать лень.
Есть предположения:
1) callback выполняется в другом потоке, в окружении которого нет MyEXT_xmlHttp_post
и/или
2) при выполнении запроса происходит что-нибудь вроде редиректа, и автоматически создаётся новый запрос
Предлагаю попробовать:
1) "Завернуть" в function весь код целиком
или
2) только handleRequestStateChange2 (MyEXT_xmlHttp_post.onreadystatechange = function () { ... })
3) Попробовать брать запрос из аргумента callback'а:
Отредактировано Anton (26-10-2008 07:49:32)
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Пробовал разные способы "заворачивания в функцию" не получилось вот готовый пример в котором наблюдается указанная проблема http://rapidshare.com/files/157795519/myext2.xpi.html
при установке расширения в углу статусбара появится красный глаз, нажав на который откроется окошко отправки текста. в результате должен появится алерт с полученным текстом.
example.com возвращает код страницы при любом запрсе
Отредактировано x_spam (26-10-2008 21:59:57)
Отсутствует
1. Строку "myext2_xmlHttp_post = evt.target;" из расширения надо вообще убрать (видимо, event'ы на xmlhttprequest в ff2 не работают)
2. Проблему создаёт window.close()
Первое, что приходит в голову - закрывать окно не сразу или размещать MyEXT_xmlHttp_post.onreadystatechange в главном окне браузера.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Страницы: 1