我正在尝试使用JSOM按钮单击创建子站点(Web)。该功能正在运行 - 只要使用给定配置创建站点。但是,尽管确实正在创建一个站点,但ExecuteQueryAsync调用总是路由到失败函数。相关代码如下:
var ctx = SP.ClientContext.get_current();
var web = ctx.get_web();
var webCreationInfo = new SP.WebCreationInformation();
webCreationInfo.set_title(portalName); //note: this variable is defined elsewhere
webCreationInfo.set_description('');
webCreationInfo.set_language(1033);
webCreationInfo.set_url(webUrl); //note: this variable is defined elsewhere
webCreationInfo.set_useSamePermissionsAsParentSite(false);
webCreationInfo.set_webTemplate(templateGuid); //note: this variable is defined elsewhere
web.get_webs().add(webCreationInfo);
web.update();
ctx.load(web);
ctx.executeQueryAsync(
function() {
alert("Created Site");
},
function(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
);
这包括我的代码中其他地方定义的几个变量,但这不应该是我的问题的一部分。使用正确的模板,名称和URL正确创建网站。
请求失败'尽管正确创建了网站,但警告始终是为我弹出的。 args.get_message()的值是"来自服务器"的意外响应而args.get_stackTrace()的值是' null'。
答案 0 :(得分:0)
这里的问题实际上是由于按钮而不是上面的代码。我需要添加'event.preventDefault();'到我的onClick函数的开头。否则,页面会尝试刷新 - 这比可以配置站点的速度快得多。