2016-01-20 85 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(),