Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery/XMLWriter] Błąd przy odczytywaniu odpowiedzi.
starach
post 8.04.2009, 12:44:54
Post #1





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


Wysyłam metodą $.post() dane do serwera. Niestety przy odczytywaniu odpowiedzi jQuery pluje wyjątkiem.
Cytat
Błąd: uncaught exception: Node cannot be inserted at the specified point in the hierarchy (NS_ERROR_DOM_HIERARCHY_REQUEST_ERR)
Plik źródłowy: http://localhost/proj1/web/script/query/jquery-1.2.6.js
Wiersz: 238
Kod generujący XML wygląda tak:
  1. <?php
  2. class Ajax
  3. {
  4.    static public function sendError($msg)
  5.    {
  6.        header("Content-type: text/xml; charset=UTF-8");
  7.        $xml = new XMLWriter();
  8.        $xml->openURI('php://output');
  9.        $xml->startDocument('1.0', 'utf-8');
  10.        $xml->setIndent(true);
  11.        $xml->setIndentString("\t");
  12.        $xml->startElement('error');
  13.            $xml->startElement('message');
  14.            $xml->writeAttribute('value', $msg);
  15.            $xml->endElement();
  16.        $xml->endDocument();
  17.        $xml->flush();
  18.    }
  19. }
  20. ?>
I przy wywołaniu zwraca:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <error>
  3. <message value="Podana strona nie istnieje"/>
  4. </error>
Myślałem że błąd leży przy zamknięciu tagu <message> ale kiedy podmieniłem odpowiedź na:
  1. <error>
  2. <message>Podana strona nie istnieje</message>
  3. </error>
Problem pozostał ten sam. Nadal w konsoli Firefox'a widzę ten wyjątek.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
starach
post 14.04.2009, 08:17:40
Post #2





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


Dzięki wielkie. Poczytałem treść z linka który podałeś, pogmerałem trochę i przepisałem kod na rozszerzenie jQuery.
Kod
jQuery.dump = function(element, limit, depth)
{
    depth =    depth?depth:0;
    limit = limit?limit:1;

    var returnString = '<ol>';

    for(property in element)
    {
        //Property domConfig isn't accessable
        if (property != 'domConfig')
        {
            returnString += '<li><strong>'+ property + '</strong> <small>(' + (typeof element[property]) +')</small>';

            if (typeof element[property] == 'number' || typeof element[property] == 'boolean')
                returnString += ' : <em>' + element[property] + '</em>';
            if (typeof element[property] == 'string' && element[property])
                returnString += ': <div style="background:#C9C9C9;border:1px solid black; overflow:auto;"><code>' +
                                    element[property].replace(/</g, '&amp;lt;').replace(/>/g, '&amp;gt;') + '</code></div>';

            if ((typeof element[property] == 'object') && (depth < limit))
                returnString += jQuery.dump(element[property], limit, (depth + 1));

            returnString += '</li>';
        }
    }
    returnString += '</ol>';

    if(depth == 0)
    {
        var $winpop=window.open("", "","width=800,height=600,scrollbars,resizable");
        $winpop.document.write('<pre>'+returnString+ '</pre>');
    }
    return returnString;
};
Jeśli ktoś z was będzie to uruchamiał, pamiętajcie że FF ma automatyczne blokowanie wyskakujących okien i nie zdziwcie się jeśli dostaniecie informację że zmienna $winpop ma wartość null. winksmiley.jpg
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.06.2025 - 21:44