Не работает 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, время: 04:15. |