SPServices 加载但不工作

SPServices loading but not working

$().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 无法在我们的开发服务器上运行的问题。它在生产和测试上运行良好,但由于某种原因在开发上运行不佳。如果我 运行 上面的代码,我会在控制台中得到以下内容。

{readyState:0,responseXML:未定义,状态:0,statusText:"No Transport"}

我在网上看到这可能是跨域传输的问题所以我设置如下:

$.support.cors = true;

现在我得到以下信息:

{readyState:0,responseXML:未定义,状态:0,statusText:"Error: Invalid Argument"}

我认为这是因为 SPGetCurrentUser 调用总是出于某种原因而不是用户返回一个空字符串。有没有人见过这种行为?有哪些常见的事情会导致 SPServices 加载但无法执行调用?感谢您的帮助。

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

correct url: 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
        }
    });
});

感谢您的post。实际上,当我尝试在共享点中使用 jquery 获取用户组时,我得到了 statusText:"Network Error" 。将站点 url 传递给上面代码中的站点变量后。我的问题已解决。