gpt4 book ai didi

SharePoint 2010 REST API JQUery 插入、更新、删除

转载 作者:行者123 更新时间:2023-12-03 14:41:31 24 4
gpt4 key购买 nike

谁能解释或指向一个链接,其中包含使用 Jquery 和 SharePoint 2010 Rest API 进行更新、删除的示例?

我有插入工作,当然还有查询,因为 MSDN 文档解释了,网上的每个教程都解释了查询,但只是想知道是否有人插入、更新、删除数据,而不仅仅是关于查询的示例和教程?是的,我知道我可以使用 CSOM,但我想了解这是如何通过 jquery 和 sharepoint rest 完成的?

我也想使用 Merge 进行更新。

这是工作插入代码:

function insertMilestone() {
var mileStonesListUrl = "/_vti_bin/listdata.svc/Milestones";
var milestone = {};
milestone.Title = "Testing from REST";

var entry = JSON.stringify(milestone);

$.ajax({
type: "POST",
url: mileStonesListUrl,
data: entry,
contentType: "application/json; charset=utf-8",
error: function (xhr) {
alert(xhr.status + ": " + xhr.statusText);
},

success: function () {
getAll();

}
});
}

最佳答案

如何使用 SharePoint 2010 REST 接口(interface)执行 CRUD 操作

创建

为了通过 REST 执行创建操作,您必须执行以下操作:

  • 使用 POST 创建 HTTP 请求动词。
  • 使用要添加实体的列表的服务 URL
    POST 的目标。
  • 将内容类型设置为 application/json .
  • 将表示新列表项的 JSON 对象序列化为
    字符串,并将此值添加到请求正文

  • JavaScript 示例:
    function createListItem(webUrl,listName, itemProperties, success, failure) {

    $.ajax({
    url: webUrl + "/_vti_bin/listdata.svc/" + listName,
    type: "POST",
    processData: false,
    contentType: "application/json;odata=verbose",
    data: JSON.stringify(itemProperties),
    headers: {
    "Accept": "application/json;odata=verbose"
    },
    success: function (data) {
    success(data.d);
    },
    error: function (data) {
    failure(data.responseJSON.error);
    }
    });
    }

    用法
    var taskProperties = {
    'TaskName': 'Order Approval',
    'AssignedToId': 12
    };

    createListItem('https://contoso.sharepoint.com/project/','Tasks',taskProperties,function(task){
    console.log('Task' + task.TaskName + ' has been created');
    },
    function(error){
    console.log(JSON.stringify(error));
    }
    );

    阅读

    为了通过 REST 执行读取操作,您必须执行以下操作:
  • 使用 GET 动词创建 HTTP 请求。
  • 使用您要添加的列表项的服务 URL
    实体作为 GET 的目标。
  • 将内容类型设置为 application/json .

  • JavaScript 示例:
    function getListItemById(webUrl,listName, itemId, success, failure) {
    var url = webUrl + "/_vti_bin/listdata.svc/" + listName + "(" + itemId + ")";
    $.ajax({
    url: url,
    method: "GET",
    headers: { "Accept": "application/json; odata=verbose" },
    success: function (data) {
    success(data.d);
    },
    error: function (data) {
    failure(data.responseJSON.error);
    }
    });
    }

    用法
    getListItemById('https://contoso.sharepoint.com/project/','Tasks',2,function(taskItem){
    console.log(taskItem.TaskName);
    },
    function(error){
    console.log(JSON.stringify(error));
    }
    );

    更新

    要更新现有实体,您必须执行以下操作:
  • 创建 HTTP使用 POST 请求动词。
  • 添加 X-HTTP-Method值为 MERGE 的 header .
  • 使用要更新的列表项的服务 URL 作为目标
    对于POST
  • 添加 If-Match具有实体原始 ETag 值的 header 。

  • JavaScript 示例:
    function updateListItem(webUrl,listName,itemId,itemProperties,success, failure)
    {
    getListItemById(webUrl,listName,itemId,function(item){

    $.ajax({
    type: 'POST',
    url: item.__metadata.uri,
    contentType: 'application/json',
    processData: false,
    headers: {
    "Accept": "application/json;odata=verbose",
    "X-HTTP-Method": "MERGE",
    "If-Match": item.__metadata.etag
    },
    data: Sys.Serialization.JavaScriptSerializer.serialize(itemProperties),
    success: function (data) {
    success(data);
    },
    error: function (data) {
    failure(data);
    }
    });

    },
    function(error){
    failure(error);
    });

    }

    用法
    var taskProperties = {
    'TaskName': 'Approval',
    'AssignedToId': 12
    };


    updateListItem('https://contoso.sharepoint.com/project/','Tasks',2,taskProperties,function(item){
    console.log('Task has been updated');
    },
    function(error){
    console.log(JSON.stringify(error));
    }
    );

    删除

    要删除实体,您必须执行以下操作:
  • 使用 POST 创建 HTTP 请求动词。
  • 添加 X-HTTP-Method值为 DELETE 的 header .
  • 使用要更新的列表项的服务 URL 作为目标
    对于 POST
  • 添加 If-Match具有实体原始 ETag 值的 header 。

  • JavaScript 示例:
    function deleteListItem(webUrl, listName, itemId, success, failure) {
    getListItemById(webUrl,listName,itemId,function(item){
    $.ajax({
    url: item.__metadata.uri,
    type: "POST",
    headers: {
    "Accept": "application/json;odata=verbose",
    "X-Http-Method": "DELETE",
    "If-Match": item.__metadata.etag
    },
    success: function (data) {
    success();
    },
    error: function (data) {
    failure(data.responseJSON.error);
    }
    });
    },
    function (error) {
    failure(error);
    });
    }

    用法
    deleteListItem('https://contoso.sharepoint.com/project/','Tasks',3,function(){
    console.log('Task has been deleted');
    },
    function(error){
    console.log(JSON.stringify(error));
    }
    );

    请关注 List Items manipulation via REST API in SharePoint 2010文章了解更多详情。

    关于SharePoint 2010 REST API JQUery 插入、更新、删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17820779/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com