1

无法通过具有访问者权限的 ECMA 脚本在共享点列表中插入项目。
<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;
}

任何建议将不胜感激。

4

1 回答 1

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;
于 2013-02-18T12:24:19.580 回答