Короче есть код. Задача с одной стороны простая с другой лёгкая(наверное). Сложная потому что я хуй знает что этот код должен выводить,скорее всего какой то список из xml документа. Нужно понять и желательно пофиксить ошибку 400 Bad Request <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <body> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <script> if (window.XMLHttpRequest) { // для IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else { // для IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("\cd_catalog.xml",false); xmlhttp.send(); // Этот код сработает после того, как мы получим ответ сервера xmlhttp.onload = function() { if (xmlhttp.status != 200) { // анализируем HTTP-статус ответа, если статус не 200, то произошла ошибка alert(`Ошибка ${xmlhttp.status}: ${xmlhttp.statusText}`); // Например, 404: Not Found } else { // если всё прошло гладко, выводим результат alert(`Готово, получили ${xmlhttp.response.length} байт`); // response -- это ответ сервера } }; xmlhttp.onprogress = function(event) { if (event.lengthComputable) { alert(`Получено ${event.loaded} из ${event.total} байт`); } else { alert(`Получено ${event.loaded} байт`); // если в ответе нет заголовка Content-Length } }; xmlhttp.onerror = function() { alert("Запрос не удался"); }; xmlDoc = xmlhttp.responseXML; document.write("<table border='1'>"); var x = xmlDoc.getElementsByTagName("cd"); for (i = 0; i < x.length; i++) { document.write("<tr><td>"); document.write(x[i].getElementsByTagName("artist")[0].childNodes[0].nodeValue); document.write("</td><td>"); document.write(x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue); document.write("</td></tr>"); } document.write("</table>"); </script> </body> </html> HTML <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <body> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <script> if (window.XMLHttpRequest) { // для IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else { // для IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("\cd_catalog.xml",false); xmlhttp.send(); // Этот код сработает после того, как мы получим ответ сервера xmlhttp.onload = function() { if (xmlhttp.status != 200) { // анализируем HTTP-статус ответа, если статус не 200, то произошла ошибка alert(`Ошибка ${xmlhttp.status}: ${xmlhttp.statusText}`); // Например, 404: Not Found } else { // если всё прошло гладко, выводим результат alert(`Готово, получили ${xmlhttp.response.length} байт`); // response -- это ответ сервера } }; xmlhttp.onprogress = function(event) { if (event.lengthComputable) { alert(`Получено ${event.loaded} из ${event.total} байт`); } else { alert(`Получено ${event.loaded} байт`); // если в ответе нет заголовка Content-Length } }; xmlhttp.onerror = function() { alert("Запрос не удался"); }; xmlDoc = xmlhttp.responseXML; document.write("<table border='1'>"); var x = xmlDoc.getElementsByTagName("cd"); for (i = 0; i < x.length; i++) { document.write("<tr><td>"); document.write(x[i].getElementsByTagName("artist")[0].childNodes[0].nodeValue); document.write("</td><td>"); document.write(x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue); document.write("</td></tr>"); } document.write("</table>"); </script> </body> </html>