javascript - error reading the response :Invalid XML error -
i m checking if username exists in database using ajax php& mysql. browser throwing following error in popup:
error reading response: invalid xml
my hanleserverresponse()
function:
function handleserverresponse() { // retrieve server's response packaged xml dom object var xmlresponse = xmlhttp.responsexml; // catching potential errors ie , opera if (!xmlresponse || !xmlresponse.documentelement) throw("invalid xml structure:\n" + xmlhttp.responsetext); // catching potential errors firefox var rootnodename = xmlresponse.documentelement.nodename; if (rootnodename == "parsererror") throw("invalid xml structure:\n" + xmlhttp.responsetext); // getting root element (the document element) xmlroot = xmlresponse.documentelement; // testing received xml document expect if (rootnodename != "response" || !xmlroot.firstchild) throw("invalid xml structure:\n" + xmlhttp.responsetext); // value need display child of root <response> element responsetext = xmlroot.firstchild.data; // display user message mydiv = document.getelementbyid("mydivelement"); mydiv.innerhtml = "server says answer is: " + responsetext; }
my ajax.php file:
<?php header('content-type: text/xml'); include ("./inc/connect.inc.php"); $username = $_get['username']; $query = mysql_query("select fname users fname='$username';"); while($row = mysql_fetch_assoc($query)) { $name = $row['fname']; if ($name == $username) { $dom = new domdocument(); $response = $dom->createelement('response'); $dom->appendchild($response); $text = $dom->createtextnode('username exits'); $response->appendchild($text); $xml_string=$dom->savexml(); echo $xml_string; } else { $dom = new domdocument(); $response = $dom->createelement('response'); $dom->appendchild($response); $text = $dom->createtextnode('username available'); $response->appendchild($text); $xml_string=$dom->savexml(); echo $xml_string; } } ?>
this not answer, might give others clue solving problem.
the code snippets op posted appear work expected. php generates xml response , javascript able extract value. way duplicate reported error mangling xml, such adding leading space. op might try adding "ob_end_clean();" statement php part clear response buffer of extraneous output (best guess). , seeing full xmlhttprequest helpful in troubleshooting.
op's code tests name in database , returns 1 of these responses:
match:
<?xml version="1.0"?> <response>username exits</response>
no match:
<?xml version="1.0"?> <response>username available</response>
both responses tested feeding them domparse generate xml document:
var parser = new domparser(); var xmlresponse = parser.parsefromstring( strxml,"text/xml");
no errors observed. next, xml fed op's function handleserverresponse(). returned correct value in both cases.
Comments
Post a Comment