gpt4 book ai didi

javascript - 使用 REST API 在主机 Web 列表中插入记录的 SharePoint 应用程序

转载 作者:行者123 更新时间:2023-11-28 09:00:49 26 4
gpt4 key购买 nike

我编写了以下代码来将记录插入到主机站点中包含的列表中。

var projectItems = [
{ Title: "SharePoint", ProjectDescription: "SharePoint 2013", ProjectManager: "Test0" },
{ Title: "Lync", ProjectDescription: "Lync 2013", ProjectManager: "Test1" },
{ Title: "Exchange", ProjectDescription: "Exchange 2013", ProjectManager: "Test2" }
];

function insertListItems(items) {
for (var item in items) {

var inputData = new Object();
var type = new Object();
type.type = getListItemType(listName);
inputData.__metadata = type;
for (var prop in items[item]) {
inputData[prop] = items[item][prop];
}

console.log(JSON.stringify(inputData));
console.log(url);

var obj = {
url: url,
type: "POST",
contentType: "application/json; odata=verbose",
data: JSON.stringify(inputData),
headers: { "Accept": "application/json; odata=verbose", "X-RequestDigest": $("#__REQUESTDIGEST").val() },
success: function (successData) { console.log("insert successful"); },
error: function (errorData) { console.log("insert failed") }
};

if (parent) {
var exec = new SP.RequestExecutor(appWebUrl);
exec.executeAsync(obj);

} else {
$.ajax(obj);
}
}
}

insertListItems(projectItems);

当我运行它时,它会打印

{"__metadata":{"type":"SP.Data.ProjectsListItem"},"标题":"SharePoint","ProjectDescription":"SharePoint 2013","ProjectManager":"Test0"}

http://app-e9f4c136adfd88.abhiapps.com/SPAppHelper/_api/SP.AppContextSite(@target)/web/lists/getbytitle ('项目')/items?@target=' http://dev.abhi.com '

{"__metadata":{"type":"SP.Data.ProjectsListItem"},"标题":"Lync","ProjectDescription":"Lync 2013","ProjectManager":"Test1"}

http://app-e9f4c136adfd88.abhiapps.com/SPAppHelper/_api/SP.AppContextSite(@target)/web/lists/getbytitle ('项目')/items?@target=' http://dev.abhi.com '

{"__metadata":{"type":"SP.Data.ProjectsListItem"},"标题":"Exchange","ProjectDescription":"Exchange 2013","ProjectManager":"Test2"}

http://app-e9f4c136adfd88.abhiapps.com/SPAppHelper/_api/SP.AppContextSite(@target)/web/lists/getbytitle ('项目')/items?@target=' http://dev.abhi.com '

插入成功 插入成功 插入成功

我对该源代码有多个问题

  1. 实际上没有插入任何记录。但不会引发任何错误。

  2. 如何确保在我的 main 方法中...仅当所有 3 条记录都已成功插入时才执行 insertListItems 方法之后的代码。目前,由于 JavaScript 的异步特性,即使在插入任何内容之前,流程也会向前推进。

  3. 我在 google 上搜索了选项 2,发现 jquery 有一个 promise 和延迟对象模式,但似乎 SP.RequestExecutor.executeAsync 不遵循该模式,并在“done”方法上抛出错误,表示不支持此类方法.

这就是我的列表的样子

enter image description here

最佳答案

将您的 obj 替换为:

        ....
method: "POST",
body: JSON.stringify(inputData),
headers: {
"Accept": "application/json;odata=verbose",
"content-type": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
}
....
....

关于javascript - 使用 REST API 在主机 Web 列表中插入记录的 SharePoint 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17767444/

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