我正在尝试在 SharePoint 2013 SharePoint 托管应用程序中使用 REST 将文件夹添加到文档库。它托管在 Office 365 开发人员站点中。我在这里遵循 MSDN 中的指南,并使用dev.office.com上的优秀示例(尤其是 REST Helper)。
在调试期间捕获请求时,与文档和示例相比,我的请求没有任何问题。我也没有遇到任何 GET 请求的问题。
这是我的要求:
var datatext = "{'__metadata': {'type': 'SP.Folder'}, 'ServerRelativeUrl': '" + serverRelativeUrl + foldername + "'}";
$.ajax({
url : $appweburl + "/_api/web/folders",
type: "POST",
data: datatext,
headers: {
"accept": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"content-type": "application/json;odata=verbose",
"content-length": datatext.length
},
success: function (data) {
success(data);
},
error: function (data) {
failure(data);
}
});
这会产生错误“值不在预期范围内”
所以这使用“数据”而不是“正文”,因为“正文”总是生成 JSON 阅读器错误。所有样本都指示“正文”,但我发现其他显示此密钥的来源应该是这样的 POST 中的“数据”,它解决了 JSON 阅读器错误。我确保 ServerRelativeUrl 以“/”和文件名开头。
任何帮助是极大的赞赏。
编辑:为了跟进这一点,我只成功地使用了 JSOM。事实证明,您必须将 ListItem 添加到列表中并将内容类型指定为文件夹才能实现此目的。它可以工作,但它让我想知道您是否必须在 REST 中做类似的事情——而不是使用文件夹端点,就像将列表项添加到列表中一样。我还没有确认。