1

訪問者権限を持つ 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;
}

任意の提案をいただければ幸いです。

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 に答える