我有以下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);
//alert(user);
}
else
{
setTimeout('process()', 1000);
}
}
function handleServerResponse()
{
if(xmlHttp.readyState==4||xmlHttp.readyState==0)
{
if(xmlHttp.status==200)
{
xmlResponse = xmlHttp.responseXML;
xmlDocumentElement = xmlResponse.documentElement;
alert(xmlDocumentElement); // [object element]
message = xmlDocumentElement.firstChild.data;
alert(message); // undefined
document.getElementById("errorprompt").innerHTML = message;
}
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>';
?>
我的问题是我无法通过document.getElementById("errorprompt").innerHTML = message;
我发现alert(xmlDocumentElement);
正在显示[object element]
而alert(message)
正在显示undefined
请让我知道理想情况下应该alert(xmlDocumentElement)
打印什么?
当我将handleServerResponse()的代码更改为以下 -
时,也很有趣function handleServerResponse()
{
if(xmlHttp.readyState==4||xmlHttp.readyState==0)
{
if(xmlHttp.status==200)
{
xmlDoc=xmlHttp.responseXML;
message=xmlDoc.getElementsByTagName("root")[0].textContent;
document.getElementById("errorprompt").innerHTML = message;
}
else
{
alert("something went wrong");
}
}
}
现在从XML打印标签'root'的文本内容。但现在问题是它没有打印任何标记代码,如<div class="example">
等,因为样式不是所希望的。
请帮帮我。我无法在任何地方找到任何有用的资源,并浪费了很多时间。 请给出一个解决方案,以便我如何设置消息变量等于完全响应php脚本抛出的内容。(包括标记)