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には、[オブジェクトオブジェクト]が表示されるだけです。

これをデバッグする方法について何かアドバイスはありますか?

4

3 に答える 3

3

console.log(xData.responseText)[オブジェクトオブジェクト]の代わりに実際のxmlをコンソールに取得するためにを使用してみてください。

于 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

によって生成されたエラーメッセージとメッセージを確認するには、firefoxにfirebugを使用してみてくださいconsole.log

于 2012-04-12T14:17:42.177 に答える