在chrome中获取Http响应的问题

时间:2010-04-05 06:05:40

标签: javascript xmlhttprequest

我试图在javascript中从php web服务获取http响应,但在firefox和chrome中获取null。请告诉我这里的错误在哪里是我的代码,

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 =“”

告诉我在哪里做错了

3 个答案:

答案 0 :(得分:1)

您正在进行跨域请求。

您只能对同一主机执行xmlhttp请求。

答案 1 :(得分:0)

我无法阅读任何内容,但Chrome有一个JavaScript控制台,可能会告诉你你做错了什么。

答案 2 :(得分:0)

这是cross-domain问题,要解决此问题,服务器响应标头应包含"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>');
?>