如何使用SharePoint_api对SharePoint列表进行更新/合并/修补

问题描述 投票:1回答:1

我想要更新到SharePoint列表。我读的标题必须包括"X-HTTP-Method": "MERGE",类型应该是POST。我不知道"IF-MATCH": "*"是否需要有etag。当我删除一个项目时,"IF-MATCH": "*"不需要有etag。这是我的代码:

function UpdateBooking(ajaxData) {
  var url = `${_spPageContextInfo.webAbsoluteUrl}/_api/web/lists/getbytitle('Bokningar')/items`;
  //requestHeaders
  var requestHeaders = {
    "accept": "application/json;odata=verbose",
    "content-type": "application/json;odata=verbose",
    "X-HTTP-Method": "MERGE",
    "IF-MATCH": "*",
    "X-RequestDigest": jQuery('#__REQUESTDIGEST').val()
  }

  //Data
  var data = {
    __metadata: {
      "type": "SP.Data.BokningarListItem"
    },
    Title: ajaxData.Title,
    EventDate: ajaxData.EventDate,
    EndDate: ajaxData.EndDate,
    Description: ajaxData.Description,
    IsBlock: ajaxData.IsBlock,
    Milj_x00f6_: ajaxData.Milj_x00f6_,
    Program: ajaxData.Program
  };

  //requestBod
  var requestBody = JSON.stringify(data);

  //Post
  var post = jQuery.ajax({
    url: url,
    type: "POST",
    headers: requestHeaders,
    data: requestBody
  });

  //Done
  post.done(function(data, textStatus, jqXHR) {});
  //Fail
  post.fail(function(jqXHR, textStatus, errorThrown) {});
}

这是我得到的错误:

{"error":{"code":"-1, Microsoft.SharePoint.Client.InvalidClientQueryException","message":{"lang":"en-US","value":"The type SP.ListItemEntityCollection does not support HTTP PATCH method."}}}

我有什么想法我做错了吗?

jquery ajax api sharepoint-online sharepoint-list
1个回答
2
投票

解决了它。我没有在URL中提供id。

    var url = `${_spPageContextInfo.webAbsoluteUrl}/_api/web/lists/getbytitle('Bokningar')/items('${id}')`;
© www.soinside.com 2019 - 2024. All rights reserved.