Итак, у меня есть проект AJAX, который использует объект XmlHttpRequest для динамического извлечения данных со стороны сервера (в моем случае я использую JSON с PHP / MySQL в случае необходимости).Почти все мои HTML-элементы создаются динамически с помощью javascript DOM, поэтому эту работу выполняют файлы .js.
Вот типичный файл .js, который я использую для получения серверной информации из PHP, а затем создаю html:
var xmlHttp = createXmlHttpRequestObject();
function createXmlHttpRequestObject() {
var xmlHttp;
try {
xmlHttp = new XMLHttpRequest();
} catch(e) {
var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
"MSXML2.XMLHTTP.5.0",
"MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0",
"MSXML2.XMLHTTP",
"Microsoft.XMLHTTP");
for(var i = 0; i < XmlHttpVersions.length && !xmlHttp; i++) {
try {
xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
} catch(e) {}
}
}
if (!xmlHttp) alert("Error creating XmlHttpRequest object.");
else { return xmlHttp; }
}
function initialize_main() {
if (xmlHttp) {
try {
xmlHttp.open("GET", "main_php.php", true);
xmlHttp.onreadystatechange = handleMainStateChange; //call a function when the state changes
xmlHttp.send(null);
} catch(e) {
alert("Can't connect to server: " + e.toString());
}
}
}
function handleMainStateChange() {
if (xmlHttp.readyState==4) {
if (xmlHttp.status==200) {
try {
init_main();
} catch(e) {
alert("Error reading the response: " + e.toString());
}
} else {
alert("There was a problem retrieving data: " + xmlHttp.statusText);
}
}
}
function init_main() {
var data = JSON.parse(xmlHttp.responseText);
//now do stuff with the DOM or w/e
}
Так что, как я уже сказал, в Firefox и Chrome все круто.Но Internet Explorer говорит мне: «Ошибка чтения ответа: TypeError: Object не поддерживает это свойство или метод».Как вы можете догадаться, я немного новичок в AJAX, так что спасибо за любую помощь!