2012-04-12 16 views
5

我使用下面的腳本:顯示object.responseXML文本進行調試

<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> 

但內$(xData.responseXML).find("z\\:row").each(function() {不會火災警報。我如何查看responseXML?我想仔細檢查我正在尋找正確的標識符(我不知道ows_來自哪裏,我被授予此腳本)。

alert和console.log只顯示[object Object]。

任何關於如何調試的建議?

+0

你用什麼瀏覽器來提出這個問題? – 2012-04-12 12:54:25

+0

我在這裏使用IE8作爲標準,但也可以訪問firefox。我正試圖使用​​IE調試器,但它也只是返回[對象對象] – RyanS 2012-04-12 13:00:00

+0

你安裝firebug(http://getfirebug.com/)爲Firefox?如果沒有,你能嗎? – 2012-04-12 13:06:31

回答

1

嘗試使用firebug for firefox來查看由console.log產生的錯誤消息和消息。

2

嘗試使用console.log(xData.responseText)在控制檯中獲取實際的xml而不是[object Object]。

3
在IE

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

看到完整的XML,你可以把它添加到頁面(IE):

alert(xData.responseXML.xml); 
在Firefox(未經證實)

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是xml作爲字符串,因此不需要將其轉換爲jquery對象

+0

是的,那不適合你。最後一行除外。但即使如此,我只是認爲我應該解決實際問題 – user1566694 2013-07-11 19:43:03