2012-04-12 23 views
5

używam następujący skrypt:Wyświetlacz object.responseXML tekst do debugowania

<script type="text/javascript"> 
    function processResult(xData, status) { 
     $('.feedbackLink').empty(); 
     alert ($(xData.responseXML.xml)); 
     console.log($(xData.responseXML.xml)); 
     $(xData.responseXML).find("z\\:row").each(function() { 
      alert ($(this)); 
      var title = $(this).attr("ows_Title"); 
      var url = $(this).attr("ows_Contact"); 
      $('.feedbackLink').append("<a href="+url+">"+title+"</a>"); 
     }); 

    }; 

    $(document).ready(function() { 
    alert("ready"); 
     var soapEnv = "<?xml version='1.0' encoding='utf-8'?> <soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'> <soapenv:Body> <GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> <listName>Pages</listName> <viewFields> <ViewFields> <FieldRef Name='Title' /> <FieldRef Name='Contact' /> </ViewFields> </viewFields> </GetListItems> </soapenv:Body> </soapenv:Envelope>";  
     $.ajax({ 
      url: "/_vti_bin/lists.asmx", 
      type: "POST", 
      dataType: "xml", 
      data: soapEnv, 
      complete: processResult, 
      contentType: "text/xml; charset=\"utf-8\"" 
     }); 
     alert(soapEnv); 
    }); 

    </script> 

jednak uderzył nieczysto w $(xData.responseXML).find("z\\:row").each(function() { przyzwyczajenie ognia. Jak mogę wyświetlić responseXML? Chcę dwukrotnie sprawdzić, czy szukam właściwych identyfikatorów (nie wiem skąd pochodzi ows_, dano mi ten skrypt do pracy).

Alert i console.log wyświetla tylko [obiekt obiektu].

Wszelkie porady dotyczące debugowania tego?

+0

Jakiej przeglądarki używasz, aby to wprowadzić? –

+0

Używam IE8 jako standard tutaj, ale mam również dostęp do firefox. Próbuję użyć debugger IE w tej chwili, ale również zwraca [object Object] – RyanS

+0

Czy zainstalował firebug (http://getfirebug.com/) dla firefox? Jeśli nie, możesz? –

Odpowiedz

1

Spróbuj użyć firebug dla firefox, aby wyświetlić komunikaty o błędach i komunikaty wyprodukowane przez console.log.

2

Spróbuj użyć console.log(xData.responseText), aby uzyskać w konsoli rzeczywisty xml zamiast [object Object].

3

w IE:

alert(xData.responseXML.xml); 

Firefox (niepotwierdzony):

var string = (new XMLSerializer()).serializeToString(xData.responseXML); alert(string); 

aby zobaczyć pełną XML, można dołączyć go do strony (IE):

function processResult(xData, status) 
{ 
    document.body.innerHTML += htmlEncode(xData.responseXML.xml); 
} 
function htmlEncode(str) 
{ 
    return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;'); 
} 

xData.responseXML.xml jest xml jako ciągiem, więc konwertowanie go do obiektu jquery nie jest potrzebne

+0

tak, to nie było dla ciebie. z wyjątkiem ostatniej linii. ale nawet wtedy pomyślałem, że powinienem odpowiedzieć na faktyczne pytanie – user1566694

Powiązane problemy