2017-12-18 23 views
0

SharePoint 목록 업데이트를 원합니다. 나는 헤더가 "X-HTTP-Method": "MERGE"을 포함해야하고 유형은 POST이어야한다고 읽었습니다. "IF-MATCH": "*"에 etag가 필요한지 여부는 알 수 없습니다. 항목을 삭제할 때 "IF-MATCH": "*"에는 필수 항목이 필요하지 않습니다. 여기 내 코드는 다음과 같습니다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}')`;