我在AJAX调用中有一个SOAP Envelope,Request Body显示结果,但页面没有

时间:2015-09-18 00:41:02

标签: javascript jquery ajax xml soap

我有以下代码,如下所示。我在这里使用SOAP信封在AJAX中取回一些结果。如果我查看IE的开发人员工具,并转到响应正文,我会看到结果。但是,我无法将它们显示在页面上。

 $(document).ready(function() {
            var soapEnv = "<soapenv:Envelope     xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'> \
                <soapenv:Body> \
                     <GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \
                        <listName>Topics</listName> \
                        <viewFields> \
                            <ViewFields> \
                               <FieldRef Name='Title' /> \
                           </ViewFields> \
                        </viewFields> \
                    </GetListItems> \
                </soapenv:Body> \
            </soapenv:Envelope>";
        $.ajax({
            url: "mysite/subsite/_vti_bin/lists.asmx",
            type: "POST",
            dataType: "xml",
            data: soapEnv,
            contentType: "application/xml; charset=utf-8",
            async:true,
       success: function (dataBack) {
            $("#Result").text(dataBack["d"]);
        },  error : alert("error"),
            contentType: "text/xml; charset=\"utf-8\""
        });
    });

<div id="Results"></div>

请告知。

3 个答案:

答案 0 :(得分:0)

你的ajax调用正在返回xml(dataBack),所以dataBack["d"]没有意义。看来你把它与JSON混淆了。

答案 1 :(得分:0)

您使用的是SP2013吗? 你可以轻松打电话 / _api /网络/列表/ GetByTitle( '主题')/项目

参考 https://msdn.microsoft.com/en-us/library/office/dn292552.aspx

答案 2 :(得分:0)

对我来说这个问题的实际答案是......是的,我可以使用没有SOAP信封的CAML查询。相反,我正在使用CSOM。我最初尝试时缺少引用,所以我开始使用SOAP。我最终找到了缺失引用的位置,并且它没有托管,而是在Layout文件夹中!