Javascript 如何使用SOAP从Sharepoint列表接收GetListItems?
我需要从SharePoint列表中获取列表项 我在当地做这件事。我尝试使用以下代码: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
<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服务,如或