Javascript AJAX responseXML错误:未捕获类型错误
我有以下代码:Javascript AJAX responseXML错误:未捕获类型错误,javascript,ajax,Javascript,Ajax,我有以下代码: var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState === 4 && xmlhttp.status === 200) { result = xmlhttp.responseXML.getElementsByTagName("tr"); if(result)
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState === 4 && xmlhttp.status === 200)
{
result = xmlhttp.responseXML.getElementsByTagName("tr");
if(result)
console.log(result);
showTable(result);
isClicked = false;
}
}
xmlhttp.open("GET", "php_includes/getResult.php?search=" + document.getElementById("search").value, true);
xmlhttp.send();
我的文件将生成如下内容:
<tr><td>1</td><td>APPLES</td><td> 0000000000414</td><td>$0.79</td></tr>
<tr><td>2</td><td>Apple Sauce</td><td> 0000000000528</td><td>$1.92</td></tr>
<tr><td>3</td><td>Apple</td><td> 0000000000540</td><td>$0.59</td></tr>
<tr><td>4</td><td>Snapple</td><td> 0000000000543</td><td>$0.69</td></tr>
但是,当我使用xmlhttp.responseText时,它会得到结果。有什么想法吗
这是我的PHP文件:
$x = 1;
$count = 0;
$result2 = array();
$result .= "<search>";
while ($row = sqlsrv_fetch_array($stmt)) {
// $class = ($x % 2 !== 0) ? 'whiteBackground' : 'graybackground';
//echo "OOMAD INJA";
//$name = sqlsrv_get_field( $stmt, 0);
//echo "$i $name<br/>";
//setlocale(LC_MONETARY, 'en_US');
$plu = $row["F01"];
$result2[] = $row['F02'];
//$result .= "<tr class='$class' onclick = 'clicked($plu);' onmouseover='ChangeColor(this, true);' onmouseout='ChangeColor(this, false);' ><td>" . $x . "</td><td class='searchtable'>" . $row["F02"] . "</td><td> " . $row["F01"] . "</td><td height= '40px'>\$" . number_format((float) $row["F30"], 2, '.', '') . "</td></tr>";
$result .= "<tr1><td1>" . $x . "</td1><td2>" . htmlentities($row["F02"]) . "</td2><td3> " . $row["F01"] . "</td3><td4>\$" . number_format((float) $row["F30"], 2, '.', '') . "</td4></tr1>";
$x++;
}
$result .="</search>";
echo $result;
$x=1;
$count=0;
$result2=array();
$result.=”;
while($row=sqlsrv\u fetch\u数组($stmt)){
//$class=($x%2!==0)?'whiteBackground':'graybackground';
//回声“OOMAD INJA”;
//$name=sqlsrv\u get\u字段($stmt,0);
//回显“$i$name
”;
//setlocale(LC_MONETARY,'en_US');
$plu=$row[“F01”];
$result2[]=$row['F02'];
//$result.=''.$x.''.$行[“F02”].''.$行[“F01”].“\$”.数字\格式((浮点)$行[“F30”]、2、'..、'');
$result.=''.$x.''.htmlentities($row[“F02”]).''.$row[“F01”]。“\$”.number\格式((float)$row[“F30”]、2、'.''、'');
$x++;
}
$result.=”;
回声$结果;
为什么不把document.getElementById(“search”).value
放在一个变量中,检查它是否真的存在,因为当你触发函数时,元素在DOMI中不存在,我检查了,元素存在。我只是简单地回显php文件的结果。是否需要添加任何特殊标记以确保它是一个xml?您是否在php文件中将标题设置为xml?是的,我还添加了xml标记和根标记。
$x = 1;
$count = 0;
$result2 = array();
$result .= "<search>";
while ($row = sqlsrv_fetch_array($stmt)) {
// $class = ($x % 2 !== 0) ? 'whiteBackground' : 'graybackground';
//echo "OOMAD INJA";
//$name = sqlsrv_get_field( $stmt, 0);
//echo "$i $name<br/>";
//setlocale(LC_MONETARY, 'en_US');
$plu = $row["F01"];
$result2[] = $row['F02'];
//$result .= "<tr class='$class' onclick = 'clicked($plu);' onmouseover='ChangeColor(this, true);' onmouseout='ChangeColor(this, false);' ><td>" . $x . "</td><td class='searchtable'>" . $row["F02"] . "</td><td> " . $row["F01"] . "</td><td height= '40px'>\$" . number_format((float) $row["F30"], 2, '.', '') . "</td></tr>";
$result .= "<tr1><td1>" . $x . "</td1><td2>" . htmlentities($row["F02"]) . "</td2><td3> " . $row["F01"] . "</td3><td4>\$" . number_format((float) $row["F30"], 2, '.', '') . "</td4></tr1>";
$x++;
}
$result .="</search>";
echo $result;