Ajax Problem, Code laeuft nur unter IE!

grabherp

Grünschnabel
Folgende Problemstellung die es fuer mich zu loesen gibt: Ich soll ein HTML Interface implementieren, welches mir bei druecken eines buttons einen bestimmten XML Request an mein in C++ implementiertes API schicken soll. Um dies zu bewerkstelligen verwenden wir das Ajax Konzept. Ich habe nun ein sehr simples Testprogramm, welches mir einen Request runterschickt und den selben dann einfach wieder ausliest und dann in einem Textfeld ausgibt. Im Internetexplorer haut das einwandfrei hin, jedoch mit Firefox bekomme ich keine Rueckmeldung. D.h. es wird kein Text in meinem Textfeld angezeigt.. Eigentlich sollte ja das HTTPXMLREQUEST Objekt ident sein in beiden Faellen. Daher weiss ich nicht wo der Fehler liegen kann. Waere dankbar wenn ein Experte mir hier weiterhelfen koennte. Anbei Testcode vom HTML file. Ich habe Testweise das Executable aus dem CGI -Bin Directrory entfernt. Beim IE Explorer bekomme ich dann die gewuenschte Fehlermeldung dass die Datei nicht gefunden werden kann. Bei Firefox daselbe wie vorher, bekomme keine Meldung in meinem Textfenster angezeigt.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ZIP Code to City and State using XmlHttpRequest</title>
<script language="javascript" type="text/javascript">
var url = "http://localhost/cgi-bin/GetPost.exe"; // The server-side script
function handleHttpResponse() {
if (http.readyState == 4) {
//Split the comma delimited response into an array
//results = http.responseText.split(",");
//document.getElementById('city').value = results[0];
//document.getElementById('state').value = results[1];
document.getElementById('XMLRequest1').value = http.responseText;
}
}

function XMLRequest(request) {
http.open("POST", url, true);
//http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
http.setRequestHeader("Content-Type", "text/xml");
http.onreadystatechange = handleHttpResponse;
//http.send("Test:" + zipValue);
//http.send("<?xml version='1.0' encoding='UTF-8'?>");
if (request == 0) {
http.send("<?xml version='1.0' encoding='UTF-8/16'?><rl_api_cmd>new_session</rl_api_cmd>");
}
else if (request == 1) {
http.send("<?xml version='1.0' encoding='UTF-8/16'?><rl_api_cmd>get_information</rl_api_cmd>");
}
}

function getHTTPObject() {
var xmlhttp;
/*@cc_on
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}
var http = getHTTPObject(); // We create the HTTP Object
</script>
</head>
<body>
<form action="post">
<p>
<input type="button" name="Verweis" value="New Session"
onClick="XMLRequest(0);"
</p>
<p>
<input type="button" name="Verweis1" value="Get Information"
onClick="XMLRequest(1);"
</p>
<p>Sent XML Request to API:<br>
<textarea name="XMLRequest1" cols="50" rows="10"></textarea>
</p>
</form>


</body>
</html>
 
Zurück