SPServices加载但无法正常工作

时间:2016-07-25 21:01:51

标签: sharepoint-2010 spservices

$().SPServices({
        operation: "GetGroupCollectionFromUser",
        userLoginName: $().SPServices.SPGetCurrentUser(),
        async: false,
        debug: true,
        completefunc: function (xData, Status) {
            console.log($.fn.jquery);
            console.log(xData.responseXML);
            console.log(xData.responseXML.xml);
        }
    });

我遇到了SPServices无法在我们的开发服务器上运行的问题。它在prod和测试上工作正常,但由于某种原因没有在dev上工作。如果我运行上面的代码,我在控制台中得到以下内容。

{readyState:0,responseXML:undefined,status:0,statusText:" No Transport"}

我在线阅读这可能是跨域转移的问题所以我设置了以下内容:

$.support.cors = true;

我现在得到以下内容:

{readyState:0,responseXML:undefined,status:0,statusText:"错误:无效的参数"}

我认为这是因为SPGetCurrentUser调用总是因为某种原因而不是用户返回空字符串。以前有人见过这种行为吗?什么是可以导致SPServices加载但无法执行调用的常见问题?谢谢你的帮助。

2 个答案:

答案 0 :(得分:3)

结果证明这似乎是SPServices的一个错误。看来,当您在具有端口号的站点上使用SPServices时由于某种原因它会复制端口号,因此一切都会中断。因此,在上面的示例中,我没有指定webURL,因此SPServices使用了当前的Web,但重复了端口,如下所示:

  

正确的网址:http://yourserver:123/sites/yoursite

     

SPServices:http://yourserver:123123/sites/yoursite

要解决此问题,只需指定一个网站相对webURL,如下面的工作代码所示。希望这可以节省一些人的恶化。

var site = "/sites/yoursite";

$(document).ready(function () {
    $().SPServices({
        operation: "GetGroupCollectionFromUser",
        userLoginName: $().SPServices.SPGetCurrentUser({
                           webURL: site
                       }),
        webURL: site,
        async: false,
        completefunc: function (xData, Status) {
            //Do stuff here
        }
    });
});

答案 1 :(得分:0)

感谢您的发帖。实际上,当我尝试在sharepoint中使用jquery获取用户组时,我得到statusText:“网络错误”。将网站网址传递给网站变量后,如上面的代码。我的问题得到了解决。