无法通过带访问者权限的ECMA脚本在sharepoint列表中插入项目
我在我网站的母版页中添加了<sharepoint:FormDigest>
控件
我能够通过系统帐户成功运行代码
这是我的代码:
try {
var context = new SP.ClientContext.get_current();
id = "123";
var nameOnly = "ABC";
var lstFavouritePosts = context.get_web().get_lists().getByTitle('DEF');
var itemCreateInfo = new SP.ListItemCreationInformation();
this.newListItem = lstFavouritePosts.addItem(itemCreateInfo);
newListItem.set_item('Title', id);
newListItem.set_item('User', nameOnly);
newListItem.update();
context.load(newListItem);
context.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
return false;
}
catch(msg)
{
alert(msg);
}
function onQuerySucceeded() {
alert('ABC');
return false;
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
return false;
}
任何建议都将受到赞赏。
答案 0 :(得分:0)
我相信您需要提供上下文用户信息。这可能是请求被拒绝的原因。
尝试将try块中的代码更改为:
var context = new SP.ClientContext.get_current();
this.website = context.get_web();
this.currentUser = website.get_currentUser();
context.load(currentUser);
id = "123";
var nameOnly = "ABC";
var lstFavouritePosts = context.get_web().get_lists().getByTitle('DEF');
var itemCreateInfo = new SP.ListItemCreationInformation();
this.newListItem = lstFavouritePosts.addItem(itemCreateInfo);
newListItem.set_item('Title', id);
newListItem.set_item('User', nameOnly);
newListItem.update();
context.load(newListItem);
context.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
return false;