【问题标题】:How to update a record within a sharepoint list using Sharepoint REST API, with jQuery?如何使用带有 jQ​​uery 的 Sharepoint REST API 更新共享点列表中的记录?
【发布时间】:2018-04-02 04:32:18
【问题描述】:

我想使用 Sharepoint REST API 和 jQuery 用新值更新 sharepoint 列表记录中的字段。

我拥有的项目的 id 为 123 并且

我有以下字典对象,我想用“example_text”的值更新记录的“example_field”字段

var example_dictionary_object = {example_field:'example_text',id:123}

我根据this stickoverflow question 尝试了以下方法,但没有成功:

function sharepoint_record_field_update(list_name,dictionary_object,id){
    var appWebUrl = _spPageContextInfo.webAbsoluteUrl;
    $.ajax({
        url: appWebUrl + "/_api/web/lists/getbyTitle('" + list_name + "')/items"+"(" + id + ")",
        type: "POST",
        data: JSON.stringify(dictionary_object),
        async: false,
        headers: {
            "accept": "application/json;odata=verbose"
        },
        success: function (data) {
            console.log('Item has been updated');
        },
        error: function (err) {
            console.log(err);
        }
    });
}


sharepoint_record_field_update('example_list',{example_field:'example_text'},123)

【问题讨论】:

    标签: javascript jquery rest sharepoint sharepoint-list


    【解决方案1】:

    您没有正确使用它。您缺少 ListItemEntityTypeFullName 以及一些必要的标头,例如请求摘要、x-http-method 和 if-match。

    尝试从以下示例代码修改您的代码:

    function UpdateListItem(){
        var listName="CustomList";
        var listItemId=123;
        var itemType = GetItemTypeForListName(listName);
        var item = {
            "__metadata": { "type": itemType },
            "Title": "value change"    
        };
    
        $.ajax({
            url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + listName + "')/items("+listItemId+")",
            type: "POST",
            contentType: "application/json;odata=verbose",
            data: JSON.stringify(item),
            headers: {
                "Accept": "application/json;odata=verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").val(),
                "X-HTTP-Method": "MERGE",
                "If-Match": "*"
            },
            success: function (data) {
                console.log('Success');            
            },
            error: function (data) {
                console.log("Error");
            }
        });
    }
    
    function GetItemTypeForListName(name) {
        return "SP.Data." + name.charAt(0).toUpperCase() + name.split(" ").join("").slice(1) + "ListItem";
    }    
    

    【讨论】:

    • @chris - 运气好吗?你试过修改上面的代码吗?
    猜你喜欢
    • 2016-12-24
    • 2012-12-18
    • 1970-01-01
    • 2019-06-06
    • 2014-03-24
    • 2019-04-06
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    相关资源
    最近更新 更多