gpt4 book ai didi

javascript - 使用 getfilebyserverrelativeurl 或 getfolderbyserverrelativeurl 时出现 HTTP 400 错误请求

转载 作者:行者123 更新时间:2023-12-04 17:29:19 25 4
gpt4 key购买 nike

我一直在尝试设置一个基本的 CRUD 操作示例 SharePoint 2013 应用程序。

我有一个开发人员模板网站设置(例如 reporting.domain.com/sites/dev)。在该站点内,我有一个带有文件的“文档库”应用程序/列表设置。我已在 list 中授予“网络”写入权限。

我需要的是通过 REST API 执行基本的 CRUD 操作。现在我只是在尝试获取和删除操作。我得到一个 400“Bad Request”返回。我完全被困住了。想法?

<?xml version=\"1.0\" encoding=\"utf-8\"?>
<m:error xmlns:m=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\">
<m:code>-2147024809, System.ArgumentException</m:code>
<m:message xml:lang=\"en-US\">Value does not fall within the expected range.</m:message>
</m:error>

这是我正在使用的 javascript 代码。 gethostWebTitleAndCreated 有效,但 getReport 或 deleteReport 均无效

(function () {
'use strict';
var hostweburl,
appweburl;

// Function to retrieve a query string value.
// For production purposes you may want to use
// a library to handle the query string.
function getQueryStringParameter(paramToRetrieve) {
var params, i, singleParam;
params = document.URL.split("?")[1].split("&");

for (i = 0; i < params.length; i = i + 1) {
singleParam = params[i].split("=");
if (singleParam[0] === paramToRetrieve) {
return singleParam[1];
}
}
}

function gethostWebTitleAndCreated() {
var url = appweburl + "/_api/SP.AppContextSite(@target)/web?@target='" + hostweburl + "'" + "&$select=title,created";
$.ajax(
{
url: url,
type: "GET",
headers: {
"accept": "application/json;odata=verbose",
"contentType": "application/json;odata=verbose"
},
success: function (data) {
$("<p>", {
text: data.d.Title
}).appendTo("#output");

},
error: function (err) {
$("<p>", {
text: JSON.stringify(err)
}).appendTo("#output");
}

}
);
}

function deleteReport() {
var executor = new SP.RequestExecutor(appweburl);
executor.executeAsync({
url: "../_api/SP.AppContextSite(@target)/web" +
"/getfilebyserverrelativeurl('/Custom Reports/NewReport.rdlx')" +
"?@target='" + hostweburl + "'",
method: "POST",
headers: {
"X-HTTP-Method": "DELETE",
"X-RequestDigest": jQuery("#__REQUESTDIGEST").val(),
"IF-MATCH": "*"
},
success: function () {
alert("Hurray!");
},
error: function (err) {
$("<p>", {
text: JSON.stringify(err)
}).appendTo("#output");
}
});
}

function getReport() {
var executor = new SP.RequestExecutor(appweburl);
executor.executeAsync({
url: appweburl + "/_api/SP.AppContextSite(@target)/web" +
"/getfilebyserverrelativeurl('/Custom Reports/NewReport.rdlx')/$value" +
"?@target='" + hostweburl + "'",
method: "GET",
headers: {
"accept": "application/json;odata=verbose",
"contentType": "application/json;odata=verbose"
},
success: function () {
alert("Hurray!");
},
error: function (err) {
$("<p>", {
text: JSON.stringify(err)
}).appendTo("#output");
}
});
}



// Load the required SharePoint libraries
$(document).ready(function () {
//Get the URI decoded URLs.
hostweburl =
decodeURIComponent(getQueryStringParameter("SPHostUrl"));
appweburl =
decodeURIComponent(getQueryStringParameter("SPAppWebUrl"));

// resources are in URLs in the form:
// web_url/_layouts/15/resource
var scriptbase = hostweburl + "/_layouts/15/";

// Load the js files and continue to the successHandler
$.getScript(scriptbase + "SP.RequestExecutor.js", gethostWebTitleAndCreated);
$("#getreport").on("click", getReport);
$("#deletereport").on("click", deleteReport);


});
}());

最佳答案

另一种解决方法(我也很惊讶地发现了这一点)是删除前导 / 字符

不工作

http://site url/_api/web/GetFolderByServerRelativeUrl('/Shared Documents')

工作

http://site url/_api/web/GetFolderByServerRelativeUrl('Shared Documents')

关于javascript - 使用 getfilebyserverrelativeurl 或 getfolderbyserverrelativeurl 时出现 HTTP 400 错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26182858/

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