从SharePoint Online删除文件,为什么总是产生错误403?

时间:2019-06-17 13:08:25

标签: rest axios sharepoint-online

我正在尝试通过REST服务从SharePoint在线文档库中的文件夹中删除文件。我已经在对该解决方案的文件和列表执行其他几项CRU(D)操作,除了(D)elete以外,其他一切都工作正常。

我尝试了几种访问文件的方法,例如GetFileByServerRelativeUrlGetFileById (=UniqueID)GetFolderByServerRelativeUrl,然后使用/Files。我也尝试过通过ListItems进行操作,即使用/lists/getByTitle('MyTitle')/items(ID)。我是该网站的网站集管理员。我得到一个X-RequestDigest,它对于所有其他操作都工作正常。 该解决方案使用TypeScript&React编写,并使用axios进行http-Requests。

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,并显示消息“此页面的安全验证无效,并且可能已损坏。请使用Web浏览器的“后退”按钮再次尝试操作。 ”。当所有其他帖子,合并和认沽操作都正常时,我无法看到为什么此调用失败的原因。

1 个答案:

答案 0 :(得分:0)

使用JQuery尝试以下代码:

aws s3 cp s3://yourbucket/path/to/file/hello.py - | python