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;