Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用SOAP从Sharepoint列表接收GetListItems?_Javascript_Sharepoint_Soap - Fatal编程技术网

Javascript 如何使用SOAP从Sharepoint列表接收GetListItems?

Javascript 如何使用SOAP从Sharepoint列表接收GetListItems?,javascript,sharepoint,soap,Javascript,Sharepoint,Soap,我需要从SharePoint列表中获取列表项 我在当地做这件事。我尝试使用以下代码: <script src="//code.jquery.com/jquery-1.11.0.min.js"></script> <script> $(document).ready(function() { var listName = "Backlog"; makeSoapCall(listName); }); functi

我需要从SharePoint列表中获取列表项

我在当地做这件事。我尝试使用以下代码:

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>

    $(document).ready(function() {
        var listName = "Backlog";
        makeSoapCall(listName);
    });

function makeSoapCall(listName){
    var soapEnv =
    "<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/'> \
      <soap:Body> \
        <GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \
          <listName>" + listName + "</listName> \
          <viewName></viewName> \
          <query></query> \
          <viewFields></viewFields> \
          <rowLimit></rowLimit> \
          <queryOptions></queryOptions> \
          <webID></webID> \
        </GetListItems> \
      </soap:Body> \
    </soap:Envelope>"

  $.ajax({
    url: "http://server/site/_vti_bin/Lists.asmx",
    type: "POST",
    dataType: "jsonp",
    data: soapEnv,
    complete: resultsFeedback,
    contentType: "application/json; charset=\"utf-8\""
  });

}

function resultsFeedback(xData, status) {
    console.log("xData: " + xData);
    console.log("status: " + status);
}

$(文档).ready(函数(){
var listName=“积压”;
makeSoapCall(listName);
});
函数makeSoapCall(listName){
var soapEnv=
" \
\
\
“+listName+”\
\
\
\
\
\
\
\
\
"
$.ajax({
url:“http://server/site/_vti_bin/Lists.asmx",
类型:“POST”,
数据类型:“jsonp”,
数据:soapEnv,
完成:结果反馈,
contentType:“应用程序/json;字符集=\“utf-8”
});
}
函数结果反馈(扩展数据、状态){
日志(“扩展数据:+xData”);
控制台日志(“状态:+状态”);
}

然后,我收到了这个消息:

Resource interpreted as Script but transferred with MIME type text/html: "http://server/site/_vti_bin/Lists.asmx?callback=jQuery11100353987290…stItems%3E%20%20%20%3C/soap:Body%3E%20%3C/soap:Envelope%3E&_=1396538736189". jquery-1.11.0.min.js:4 Uncaught SyntaxError: Unexpected token < Lists.asmx:3

xData: [object Object] report.html:37
status: parsererror
资源解释为脚本,但使用MIME类型text/html传输:http://server/site/_vti_bin/Lists.asmx?callback=jQuery11100353987290…缝合%3E%20%20%20%3C/肥皂:正文%3E%20%3C/肥皂:信封%3E&=1396538736189”。jquery-1.11.0.min.js:4未捕获的语法错误:意外标记
有人能帮忙吗

提前谢谢。
Edson Martins

您的ajax调用对象的数据类型属性不正确。它应该是“xml”。此外,您的“contentType”属性应具有application/xml值,而不是json值。请尝试以下操作:

$.ajax({
    url: "http://server/site/_vti_bin/Lists.asmx",
    type: "POST",
    dataType: "xml",
    data: soapEnv,
    complete: resultsFeedback,
    contentType: "application/xml; charset=\"utf-8\""
  });

谢谢你的回答。应用程序在本地跨域运行,如果我使用XML,访问将被拒绝,jsonp将用于跨域。使用XML,我收到以下消息:401(未经授权)扩展数据:[object object]report.html:37状态:Error您被拒绝访问不是因为跨域调用,而是因为您没有获得SharePoint授权。根据您使用的SharePoint版本,您有不同的授权方式。您知道如何获得权限吗?我正在尝试:\user@domain\password\\n您可以尝试在ajax调用中提供用户名和密码。用户名:“用户名”,密码:“密码”,但我不确定它是否适用于所有情况。此外,您可以尝试此处所述的方法。您可能还希望使用第三方库,以便更轻松地处理Sharepoint web服务,如或