You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SharePoint REST API GetFolderByServerRelativeUrl返回404求助

排查建议

1. 修正请求头传递方式(核心错误)

你的代码错误地将请求头放在了get方法的第二个参数(这是查询参数),而非withHeaders方法中。正确写法:

$folderUrl = '/sites/TeamraumWorkplaceSolutions/Freigegebene Dokumente';
// 编码路径中的特殊字符(如空格)
$encodedFolderUrl = rawurlencode($folderUrl);

$url = "$this->hServer/_api/web/GetFolderByServerRelativeUrl('$encodedFolderUrl')/files";

$response = Http::withHeaders([
    'Authorization' => "Bearer " . Session::get('sharepoint_auth_code'),
    'Accept' => 'application/json;odata=verbose',
])->get($url);

dd($response->getStatusCode(), $response->getBody(), $response);

2. 确认文件夹的真实服务器相对路径

直接在目标文件夹页面获取准确路径:

  • 打开浏览器F12开发者工具,切换到控制台,执行以下JS代码:
    console.log(_spPageContextInfo.webServerRelativeUrl + '/' + _spPageContextInfo.listAttributes["RootFolder"]);
    
  • 复制控制台输出的路径,这就是该文件夹的服务器相对路径,直接用于GetFolderByServerRelativeUrl参数(记得编码)。

3. 测试URL有效性

在浏览器中直接访问构造好的API URL(需已登录SharePoint),比如:

https://xyz.sharepoint.com/sites/TeamraumWorkplaceSolutions/_api/web/GetFolderByServerRelativeUrl('/sites/TeamraumWorkplaceSolutions/Freigegebene%20Dokumente')/files
  • 如果浏览器返回JSON数据,说明URL正确,问题出在代码实现;
  • 如果浏览器仍返回404,说明路径错误,重新确认文件夹的服务器相对路径。

4. 排除无效路径尝试

你的尝试中,Shared Documents(第3、4种)是英文默认文档库名称,而目标文件夹是德语的Freigegebene Dokumente,直接排除这两种情况。

内容的提问来源于stack exchange,提问作者K.G.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 05:13:41