Я пытаюсь удалить файл из папки в библиотеке документов в SharePoint через службы REST. Я уже делаю несколько других операций CRU (D) для файлов и списков для этого решения, все работает нормально, за исключением (D) elete.
Я пробовал несколько способов доступа к файлу, например, GetFileByServerRelativeUrl
, GetFileById (=UniqueID)
, GetFolderByServerRelativeUrl
с последующим использованием /Files
. Я также попытался сделать это через ListItems, то есть, используя /lists/getByTitle('MyTitle')/items(ID)
. Я администратор семейства сайтов для этого сайта. Я получаю X-RequestDigest, который отлично работает для всех других операций.
Решение написано на TypeScript & React и использует axios для http-запросов.
var deleteConfig = {
headers: {
"accept": "application/json;odata=verbose",
"IF-MATCH": "*",
"X-HTTP-Method": "DELETE",
"X-RequestDigest": (document.querySelector("#__REQUESTDIGEST") as HTMLInputElement).value
}
}
axios.post(this.props.baseUrl + "/_api/web/getfilebyserverrelativeurl('/sites/MySite/DocLib/Test5.txt')/recycle()", deleteConfig)
.then(response => {
resolve();
})
.catch(ex => {
if (ex.response.status === 403) {
alert("Access Denied!");
console.log(ex);
} else {
alert("Error deleting file (" + ex.response.status + "): " + ex);
console.log(ex);
}
reject();
});
Любое удаление (с или без "/ recycle ()") приводит к ошибке 403 с сообщением "Проверка безопасности этой страницы недействительна и может быть повреждена. Пожалуйста, используйте кнопку" Назад "в вашем веб-браузере, чтобы повторить попытку. ». Я не могу понять, почему этот вызов не удался, когда все другие сообщения, слияния и путы работают нормально.