我在AJAX调用中有一个SOAP信封,请求体显示结果,但页面不显示

I have a SOAP Envelope inside an AJAX Call, the Request Body Displays results, but page does not

本文关键字:显示 结果 AJAX 请求 有一个 SOAP 信封 我在 调用      更新时间:2023-09-26

我有如下所示的代码:我在这里使用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>

请建议。

您的ajax调用返回xml (dataBack),所以dataBack["d"]没有意义。你好像把它和JSON搞混了

您使用的是SP2013吗?你可以很容易地/_api/web/清单/GetByTitle("主题")/项目

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

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