2017-12-18 204 views
0

我想更新SharePoint列表。我閱讀標題必須包括"X-HTTP-Method": "MERGE"和類型應爲POST。我不知道是否需要"IF-MATCH": "*"有一個etag或不。當我刪除一個項目"IF-MATCH": "*"不需要有一個etag。這裏是我的代碼:如何使用SharePoint_api執行更新/合併/修補程序到SharePoint列表

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."}}} 

任何想法我做錯了嗎?

回答

0

解決了它。我沒有提供URL中的ID。

var url = `${_spPageContextInfo.webAbsoluteUrl}/_api/web/lists/getbytitle('Bokningar')/items('${id}')`; 
相關問題