2016-01-20 61 views
0

我面臨使用SharePoint REST API更新簡單列表項的問題。我已經瀏覽了所有博客以獲得解決方案,但結果相同。當我使用REST API執行更新列表項功能時,它會返回我正在嘗試更新的特定列表項行的主體,但它不更新listem。有人能幫助我嗎?在此先感謝使用SharePoint REST API更新列表項不起作用

function (listTitle, TabId, success, failure) { 
    var itemType = GetItemTypeForListName(listTitle); 
    var query = appweburl + "_api/SP.AppContextSite(@target)/web/lists/getbytitle('" + listTitle + "')/items(5)?&@target='" + hostweburl + "'"; 

     var meta_data = {"__metadata": { "type": itemType }}; 
        meta_data['DeletedStatus'] = 'Inactive' 
     var executor = new SP.RequestExecutor(appweburl); 

     executor.executeAsync({ 
        url: query, 
        type: "POST", 
        contentType: "application/json;odata=verbose", 
        data: JSON.stringify(meta_data), 
        //body: meta_data, 
        headers: { 
         "Accept": "application/json;odata=verbose", 
         "X-RequestDigest": $("#__REQUESTDIGEST").val(), 
         "X-HTTP-Method": "MERGE", 
         "IF-MATCH": "*" 
         //"content-length": meta_data.length, 

        }, 
        success: function (data) { 
         //alert("success: " + JSON.stringify(data)); 
         //deferred.resolve(JSON.parse(data.body)); 
         console.log(JSON.stringify(data)); 
         alert(JSON.stringify(data)); 
        }, 
        error: function (err) { 
         //alert("error: " + JSON.stringify(err)); 
         console.log(JSON.stringify(err)); 
        } 
       }); 

} 

function GetItemTypeForListName(name) { 
       return "SP.Data." + name.charAt(0).toUpperCase() + name.split(" ").join("").slice(1) + "ListItem"; 
      } 
+0

你能寫出異常消息嗎? – acebisli

+0

你可以嘗試方法:「POST」而不是類型? – peac3maker

+0

你解決了這個問題嗎?我有類似的問題。 – 2016-05-27 11:28:36

回答

1

否則只需替換下面的代碼在你的函數

executor.executeAsync({ 
url : query, 
method : "POST", 
body: JSON.stringify(meta_data), 
headers: { 
    "Accept": "application/json;odata=verbose", 
    "Content-Type" : "application/json;odata=verbose", 
    "X-HTTP-Method": "MERGE", 
    "IF-MATCH": "*" 
}, 
success: function (data) { 
    console.log(JSON.stringify(data)); 
}, 
error: function (err) { 
    console.log(JSON.stringify(err)); 
} }); 

它也將插入摘要你,所以你不需要添加

「X-RequestDigest」: $(「#__ REQUESTDIGEST」)。val(),

相關問題