我试图在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 =“”
告诉我在哪里做错了
答案 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>');
?>