$().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加载但无法执行调用的常见问题?谢谢你的帮助。
答案 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:“网络错误”。将网站网址传递给网站变量后,如上面的代码。我的问题得到了解决。