Проблема с получением ответа Http в Chrome

Я пытаюсь получить ответ http от веб-службы php в javascript, но получаю null в firefox и chrome. Пожалуйста, скажите мне, где я делаю ошибку, вот мой код,

function fetch_details()
{
 if (window.XMLHttpRequest)
 {
  xhttp=new XMLHttpRequest()
  alert("first");
 }
else
 {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP")
  alert("sec");
 }
 xhttp.open("GET","url.com",false);
 xhttp.send("");
 xmlDoc=xhttp.responseXML;
 alert(xmlDoc.getElementsByTagName("Inbox")[0].childNodes[0].nodeValue);
}

Я также пробовал с ajax, но не получаю ответа http, вот мой код, пожалуйста, помогите мне

var xmlhttp = null;
var url = "url.com"; 
if (window.XMLHttpRequest) 
{ 
   xmlhttp = new XMLHttpRequest(); 
   alert(xmlhttp); //make sure that Browser supports overrideMimeType 
   if ( typeof xmlhttp.overrideMimeType != 'undefined') 
   {                     
      xmlhttp.overrideMimeType('text/xml'); 
   } 
} 
else if (window.ActiveXObject) 
{ 
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{ 
   alert('Perhaps your browser does not support xmlhttprequests?'); 
} 

xmlhttp.open('GET', url, true);
xmlhttp.onreadystatechange = function() {

if (xmlhttp.readyState == 4)
{
   alert(xmlhttp.responseXML);
} 
};

}

// Сделать фактический запрос xmlhttp.send(null);

Я получаю xmlhttp.readyState = 4 xmlhttp.status = 0 xmlhttp.responseText = ""

плиз подскажите где я ошибаюсь


person Bhaskasr    schedule 05.04.2010    source источник
comment
Пожалуйста, сделайте что-нибудь с форматированием кода. Над текстовым полем есть кнопка «010101», чтобы пометить код как код. Даже если бы я щелкнул это для вас, этот код все еще слишком беспорядочный, поэтому на этот раз я не буду беспокоиться.   -  person deceze♦    schedule 05.04.2010
comment
вы делаете междоменный запрос? это обычный случай получения кода состояния 0.   -  person Anurag    schedule 05.04.2010


Ответы (3)


Вы делаете междоменный запрос.

Вам разрешено выполнять запросы xmlhttp только к одному и тому же хосту.

person Andrin von Rechenberg    schedule 18.02.2011

Я ничего не могу прочитать, но в Chrome есть консоль JavaScript, которая, вероятно, скажет вам, что вы делаете неправильно.

person Azeem.Butt    schedule 05.04.2010
comment
Я не знаю, почему я получаю http.status = 0 - person Bhaskasr; 05.04.2010
comment
Я думаю, что это междоменная проблема - person Bhaskasr; 05.04.2010

Это междоменная проблема, для ее решения заголовок ответа сервера должен содержать "access-control-allow-origin"

Если код вашего сервера написан на PHP, заголовок должен выглядеть следующим образом:

<?php
    header('Content-type: text/html');
    header('Access-Control-Allow-Origin: *');
    $uri = 'http'. ($_SERVER['HTTPS'] ? 's' : null) .'://'. $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    echo('<p>This information has come from <a href="' . $uri . '">' . $uri . '</a></p>');
?>
person Ashraf Bashir    schedule 02.04.2012