Javascript 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

无法通过具有访问者权限的ECMA脚本在sharepoint列表中插入项目。
我已经在我的站点的母版页中添加了
控件。
我能够通过系统帐户成功运行代码。
这是我的代码:

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列,并创建一个新列,并以编程方式为其设置值。您能否给出一个提示,或一个链接作为另一个帐户执行此操作的示例?