拒绝通过ECMA脚本在sharepoint列表中插入项目的访问权限

时间:2013-02-18 11:31:04

标签: javascript sharepoint

无法通过带访问者权限的ECMA脚本在sharepoint列表中插入项目 我在我网站的母版页中添加了<sharepoint:FormDigest>控件 我能够通过系统帐户成功运行代码 enter image description here 这是我的代码:

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;
}

任何建议都将受到赞赏。

1 个答案:

答案 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;