6

我正在使用以下脚本:

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

关于如何调试的任何建议?

4

3 回答 3

3

尝试使用console.log(xData.responseText)在控制台中获取实际的 xml 而不是 [object Object]。

于 2013-03-13T11:49:02.483 回答
3

在 IE 中:

alert(xData.responseXML.xml);

在 Firefox 中(未确认):

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

要查看完整的 xml,您可以将其附加到页面 (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 是 xml 作为字符串,因此不需要将其转换为 jquery 对象

于 2013-07-09T22:13:18.213 回答
1

尝试使用firebug for firefox 查看错误消息和由console.log.

于 2012-04-12T14:17:42.177 回答