我有以下JavaScript代码片段,它通过php脚本读取动态创建的XML文件,并在目标html页面中相应地写入文本。
function process()
{
if(xmlHttp.readyState==0 || xmlHttp.readyState==4)
{
var user = encodeURIComponent(document.getElementById("email").value);
var url = "http://localhost/dashboard/x/js/login.php?user="+user;
xmlHttp.open("GET",url, true);
xmlHttp.onreadystatechange = handleServerResponse;
xmlHttp.send(null);
}
else
{
setTimeout('process()', 1000);
}
}
function handleServerResponse()
{
if(xmlHttp.readyState==4||xmlHttp.readyState==0)
{
if(xmlHttp.status==200)
{
xmlResponse = xmlHttp.responseText;
xmlDocumentElement = xmlResponse.documentElement;
alert(xmlDocumentElement);
message = xmlDocumentElement.firstChild.data;
document.getElementById("errorprompt").innerHTML = message;
setTimeout('process()', 1000);
}
else
{
alert("something went wrong");
}
}
}
login.php文件如下 -
<?php
header("Content-Type: text/xml");
echo '<?xml version="1.0" encoding="ISO-8859-1"?>';
echo '<root>';
$user=$_GET['user'];
$userArray=array("vishalkhare39@gmail.com","khare39vishal@rediffmail.com");
if(in_array($user,$userArray))
echo '<div class="alert alert-success fade in"><a href="#" class="close" data-dismiss="alert" aria-label="close">;</a><strong>Danger!</strong> This alert box could indicate a dangerous or potentially negative action.</div>';
else
echo '<div class="alert alert-danger fade in"><a href="#" class="close" data-dismiss="alert" aria-label="close">;</a><strong>Danger!</strong> This alert box could indicate a dangerous or potentially negative action.</div>';
echo '</root>';
?>
我的问题很简单。我无法在index.html中的目标div上打印适当的数据。
我把它缩小了以找出原因。
这是因为在我的javascript代码中,行xmlDocumentElement = xmlResponse.documentElement;
实际上在xmlDocumentElement
中保存未定义,即xmlResponse.documentElement
返回未定义。它显然不应该。
我只是想要一个补救措施。我知道它是由XML无法正确呈现引起的。但事实并非如此。我的XML在chrome和firefox(附加JPEG)上正确呈现。 请说明实际原因以及解决方法。 请不要将我的任何其他网页或链接重定向。我浪费了足够的时间来知道在任何地方都没有适当的回答。