SharePoint GetListItems跨域

我基本上需要从不同服务器上的SharePoint列表中执行GetListItems。 我尝试过不同的代码,但都错了。 有人可以看看我有什么,看看它是否错了,或者它是否是不可能的? 我得到错误警报,然后xData.ResponseText警报为’undefined’。 之后什么都没有。 我正在运行代码的服务器是server3.intranet.com。 谢谢。

var soapEnv = " \  \  \ Shared Documents \  \  \  \  \  \  \  \ "; function Result(xData, status) { alert(xData.responseText); $(xData.responseXML).find("z\\:row").each(function() { var title = $(this).attr("ows_Title"); alert(title); }); } $.ajax({ url: "http://teams02.intranet.com/sites/MySite/_vti_bin/Lists.asmx", type: "POST", dataType: "JSONP", crossDomain: true, data: soapEnv, complete: Result, contentType: "text/xml; charset=\"utf-8\"", error:function(){ alert("Error"); } 

那么这段代码中有什么需要改变的吗? 我正在使用的url是否正确? 我不确定我应该指向什么 – 如果它是列表本身或某种虚拟路径。

这是一个工作示例:

 $(function(){ var soapEnv = " \  \  \ Shared Documents \  \  \  \  \  \  \  \ "; $.ajax({ url: "http://servername/mysite/_vti_bin/lists.asmx", type: "POST", dataType: "xml", data: soapEnv, contentType: "text/xml; charset=\"utf-8\"", complete: function(xData, status){ $(xData.responseXML).find("z\\:row").each(function(){ var title = $(this).attr("ows_FileLeafRef").split("#")[1]; alert(title); }) }, error: function(){ alert("error"); } }); }); 

您冒着面对跨站点脚本的风险。 为了实现您的目标,我建议您在javascript来自同一服务器上创建服务,并实现从本地服务中的其他服务器检索数据的所有逻辑(即使用Linq2SharePoint或SOAP API)。 从安全性和跨浏览器实现的角度来看,这将是最可靠的方式。