10 Stimmen

Wie umgeht man einen 'NS_ERROR_ILLEGAL_VALUE'-Fehler mit Ajax?

Im gerade schreiben eine kleine Ajax-Framework für Wiederverwendbarkeit in kleinen Projekten und ich habe ein Problem getroffen. Grundsätzlich bekomme ich ein ' NS_ERROR_ILLEGAL_VALUE ' Fehler beim Senden der Anfrage und ich habe keine Ahnung, was passiert.

Die HTML-Seite (gekürzt, zeigt aber den Fehler)

<!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>Ajax Test</title> 
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

        <script type="text/javascript">

            var COMPLETE = 4;
            var OK = 200;

            function GetXMLHttpRequestObject()
            {
                var XMLHttpRequestObject = false;

                if(window.XMLHttpRequest)
                {
                    if(typeof XMLHttpRequest != 'undefined')
                    {
                        try
                        {
                            XMLHttpRequestObject = new XMLHttpRequest();
                        }
                        catch (e)
                        {
                            XMLHttpRequestObject = false;
                        }
                    }
                }
                else if (window.ActiveXObject)
                {
                    try
                    {
                        XMLHttpRequestObject = new ActiveXObject('Msxml2.XMLHTTP');
                    }
                    catch (e)
                    {
                        try
                        {
                            XMLHttpRequestObject = new ActiveXObject('Microsoft.XMLHTTP');
                        }
                        catch (e)
                        {
                            XMLHttpRequestObject = false;
                        }
                    }
                }
                else
                {
                    XMLHttpRequestObject = false;
                }
                return XMLHttpRequestObject;
            }

            //The Main Ajax Object
            function AjaxRequest(p_RequestMethod, p_DestinationURL)
            {
                this.XMLHttpRequestObject = GetXMLHttpRequestObject();

                this.RequestedMethod = p_RequestMethod;
                this.DestinationURL = p_DestinationURL;

                this.XMLHttpRequestObject.open(this.RequestMethod, this.DestinationURL);

                this.OnStateChange = function(Callback)
                {
                    this.XMLHttpRequestObject.onreadystatechange = Callback;
                }

                this.Send = function(p_Content)
                {
                    this.XMLHttpRequestObject.send(p_Content);
                }

                this.GetState()
                {
                    return this.XMLHttpRequestObject.readyState;
                }

                this.GetResponseText = function()
                {
                    return this.XMLHttpRequestObject.responseText;
                }

                this.GetResponseStatus = function()
                {
                    return this.XMLHttpRequestObject.status;
                }

                this.GetResponseStatusText = function()
                {
                    return this.XMLHttpRequestObject.statusText;
                }
            }

            var Request;

            function GetData()
            {
                Request = new AjaxRequest('POST', 'http://www.kalekold.net/ajax/Ajax.php');
                Request.OnStateChange = StateChange;
                Request.Send();
            }

            function StateChange()
            {
                window.alert("State: " + Request.GetState());
                window.alert("Response: " + Request.GetResponseStatus());
                window.alert("Response Text: " + Request.GetResponseStatusText());

                if(Request.GetState() == COMPLETE && Request.GetResponseStatus() == OK)
                {
                    Result = Request.GetResponseText();
                    window.alert(Result);
                }
            }
        </script> 

    </head> 
    <body> 
        <form>
            <textarea name="TextArea" rows="10" cols="80"></textarea><br />
            <input type="button" value="Load" onClick="GetData();">
        </form>
    </body> 
</html>

Die PHP-Datei:

<?php
$XML = <<< PROLOG
<?xml version="1.0" encoding="iso-8859-1"?>
PROLOG;

$XML .= "<results>";
    $XML .= "<result>";
        $XML .= "<FirstName>Gary</FirstName>";
        $XML .= "<SecondName>Willoughby</SecondName>";
        $XML .= "<Age>35</Age>";
    $XML .= "</result>";
    $XML .= "<result>";
        $XML .= "<FirstName>Sara</FirstName>";
        $XML .= "<SecondName>Gostick</SecondName>";
        $XML .= "<Age>35</Age>";
    $XML .= "</result>";
$XML .= "</results>";

header("Content-Type: text/xml");
echo $XML;
?>

Der vollständige Fehler:

uncaught exception: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIXMLHttpRequest.open]"  nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)"  location: "JS frame :: http://www.kalekold.net/ajax/ :: AjaxRequest :: line 63"  data: no]

Line 0

Ich kann einfach nicht erkennen, was da schief läuft. Haben Sie eine Idee?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X