Javascript ECMA脚本拒绝在sharepoint列表中插入项目的访问
无法通过具有访问者权限的ECMA脚本在sharepoint列表中插入项目。Javascript ECMA脚本拒绝在sharepoint列表中插入项目的访问,javascript,sharepoint,Javascript,Sharepoint,无法通过具有访问者权限的ECMA脚本在sharepoint列表中插入项目。 我已经在我的站点的母版页中添加了控件。 我能够通过系统帐户成功运行代码。 这是我的代码: try { var context = new SP.ClientContext.get_current(); id = "123"; var nameOnly = "ABC"; var lstFavouritePosts = context.get_web().ge
我已经在我的站点的母版页中添加了
控件。我能够通过系统帐户成功运行代码。
这是我的代码:
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;
}
任何建议都将不胜感激。我相信您需要提供上下文用户信息。这可能就是请求被拒绝的原因 尝试将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;
抱歉,我刚刚看到您希望以访客身份添加该项目,因此我的建议无效。您的列表允许这样做吗?我想你需要设置权限,允许客人向列表中添加项目谢谢。你能给出提示吗?它可以工作,但我不想授予权限,因为访客可以看到b'Z列表,我不想允许他们手动在列表中插入项目。我只想允许他们通过UI插入。代码是“标记为收藏夹”。所以我有要插入他们的ID,请在列表中输入姓名。所以…好吧,至少我们知道您为什么会收到拒绝访问消息。难道你不能从导航菜单中隐藏列表,这样他们就无法访问它,从而通过Sharepoint UI添加一个新项目吗?另一种方法是创建一个特定帐户,代码使用该帐户代表用户插入项目。您可以隐藏由添加的sharepoint列,并创建一个新列,并以编程方式为其设置值。您能否给出一个提示,或一个链接作为另一个帐户执行此操作的示例?