Не работает XMLHttpRequest (status) в Explorer и Opera
Привет всем.
У меня возникла проблема c таким скриптом: function getXmlHttp(){ var xmlhttp; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); } return xmlhttp; } function getMsg() { var req = getXmlHttp() req.open('GET', 'http://example.com', true) req.onreadystatechange = function() { if (req.readyState == 4) { if (req.status == 204) { document.getElementById('mydiv').appendChild(document.createTextNode("my-message_1")); } if (req.status == 200) { document.getElementById('mydiv').appendChild(document.createTextNode("my-message_2")); } } } req.send(null) } Во всех браузерах работает отлично а вот в Explorer и Opera не хочет работать и всё. Я так понимаю, в этих браузерах не читается if (req.status == ???) Помогите, если кто знает решение такой проблемы. :help: |
У меня все работает:
<div id="mydiv"></div> <script type="text/javascript"> function getMsg() { var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); req.open( 'GET', 'http://lookatcode.com/showjs', true ); req.onreadystatechange = function() { if (req.readyState == 4) { if (req.status == 204) { document.getElementById('mydiv').appendChild(document.createTextNode("my-message_1")); } if (req.status == 200) { document.getElementById('mydiv').appendChild(document.createTextNode("my-message_2")); } } } req.send(null) } getMsg(); </script> |
Спасибо.
Этот скрипт работает лучше :) При запросе на сторонний домен Explorer выдаёт ошибку отказа в доступе а Opera вообще ничего не показывает. Тут по видимости как-то запрос Аяксом с сервера делается а как такую фитчу прикрутить к PHP не знаю. Адрес URL пользователем вводится через форму, в случае существования картинки (200) - oтображает картинку, в другом случае (204) - моё сообщение. Может есть и проще варианты чем XMLHttpRequest… Если кто встречался с подобным или знает похожий код подскажите пожалуйста |
Вобщем у меня лучше получилось без XMLHttpRequest
Вот код нашёл, который выдаёт ошибку, в случае если нет параметров картинки (может кому понадобится)… ;) function loadImage(src) { var image = new Image; image.onload = function() { if ('naturalHeight' in this) { if (this.naturalHeight + this.naturalWidth === 0) { this.onerror(); return; } } else if (this.width + this.height == 0) { this.onerror(); return; } // At this point, there's no error. document.body.appendChild(image); }; image.onerror = function() { //display error document.body.appendChild( document.createTextNode('\nError loading as image: ' + this.src) ); }; image.src = src; } :victory: |
Часовой пояс GMT +3, время: 14:12. |