在 React WebPart 中使用 httpClient.get 来自 GetFolderByServerRelativeUrl 的 MS Edge HTTP 403

Posted

技术标签:

【中文标题】在 React WebPart 中使用 httpClient.get 来自 GetFolderByServerRelativeUrl 的 MS Edge HTTP 403【英文标题】:MS Edge HTTP403 from GetFolderByServerRelativeUrl using httpClient.get in aReact WebPart 【发布时间】:2019-03-31 13:29:40 【问题描述】:

我只在 MS Edge 中获得 HTTP403。我已经在许多其他浏览器中进行了测试,并且 .get 工作正常。我正在创建要在我们的 SharePoint Online 环境中使用的 React WebPart。我要获取的文件是存储在文档库中的 csv 文件。我正在使用 web api GetFolderByServerRelativeUrl 进行其余调用。这是代码片段:

   fileUrl =  "..._api/web/GetFolderByServerRelativeUrl('Shared%20Documents')/Files('file.csv')/$value";
    const csvHeaders: Headers = new Headers();
    csvHeaders.append("Content-type","text/csv");
    csvHeaders.append("Cache-Control","no-cache");
    const csvOpts: IHttpClientOptions = 
      headers: csvHeaders
    ;   

this.props.context.httpClient.get(fileUrl,HttpClient.configurations.v1,csvOpts).then((response: HttpClientResponse)=> ...

当然希望有人以前解决过这个问题。感谢您的时间和帮助。

【问题讨论】:

【参考方案1】:

您需要在代码中使用spHttpClient 而不是httpClient

因此,将您的代码修改为this.props.context.spHttpClient.get(...),它应该可以开始工作了。

spHttpClient 专门用于与 SharePoint REST API 交互,而httpClient 用于与 SharePoint 外部的 API 交互。

【讨论】:

以上是关于在 React WebPart 中使用 httpClient.get 来自 GetFolderByServerRelativeUrl 的 MS Edge HTTP 403的主要内容,如果未能解决你的问题,请参考以下文章

SPFX React -Basic Webpart 中的数据版本错误

SPFx Webpart - node_modules/@types/ [prop types] 和 [react] index.d.ts:在 gulp 构建时加载“错误 TS1005”

使用反应路由器在sharepoint框架webpart中路由?我陷入了一种情况,我必须在单击按钮时重定向到另一个页面。

使用 httpc lib 将大型 http 响应流式传输到 Erlang 中的磁盘

yaws 因 httpc 崩溃:请求 docker 容器提供的 URL

从一个 webpart 访问信息并在 sharepoint 2010 中的另一个 webpart 中使用它