SharePoint REST - 在文件中更改作者

时间:2015-09-24 15:19:05

标签: json rest sharepoint author

很难更改共享点项目(如文件)的作者。 我正在使用的实际jsonstring:

{'__metadata': { 'type': 'SP.Data.DocumentsItem' } ,'AuthorId': '20'}

发布到此网址:

https://mysharepoint.sharepoint.com/sites/mysite/_api/web/lists/getByTitle('Documents')/items(137)

我已将Created By设置为Readonly = false,但工作正常,但Created By或Modified By没有改变,我没有收到错误。 我的请求中还需要其他东西吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

对于update操作,需要执行以下操作:

  • 使用HTTP动词
  • 创建POST请求
  • 添加X-HTTP-Method标头,其值为MERGE
  • 使用要更新的列表项的服务URL作为目标 对于POST
  • 添加If-Match标头,其中包含实体原始ETag的值。

以下示例演示了如何更新单值用户字段:

var listTitle = 'Requests';
var listItemId = 1;
var properties = {
    '__metadata': { "type": "SP.Data.RequestsListItem" },
    'AssignedToId': 1  //single-valued User field value 
};
var requestUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + listTitle + "')/items(" + listItemId + ")";
updateJson(requestUrl,properties)
.done(function(data){
   console.log('List item has been updated'); 
})
.fail(function(error){
   console.log(JSON.stringify(error)); 
})

,其中

function updateJson(url,payload)
{
   return $.ajax({
      url: url,
      type: "POST",
      contentType: "application/json;odata=verbose",
      data: JSON.stringify(payload),
      headers: {
         "Accept": "application/json;odata=verbose",
         "X-RequestDigest": $("#__REQUESTDIGEST").val(),
         "X-HTTP-Method": "MERGE",
         "If-Match": "*"
      }
   });    
}