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

如何用Angular HTTP GET获取SharePoint列表创建人、修改人值

问题原因

SharePoint REST API 查询列表项时,用户类型、查找类型的关联字段不会默认随列表项结果返回,仅在$select中声明字段名无法获取完整字段值;另外需要区分系统内置的创建/修改人字段和自定义同名字段:系统内置创建人、修改人字段的内部名称为Author、Editor,和自定义的无内部空格的CreatedBy、ModifiedBy字段是互相独立的字段。

修复方案

根据你要查询的字段类型,给请求补充$expand参数展开关联的用户信息即可:

  • 如果要查询的是自定义创建的CreatedBy、ModifiedBy用户字段,将请求修改为如下形式:
this.http.get(
  this.baseurl + "_api/web/lists/getByTitle('mylist')/items?$select=ID,Created,CreatedBy,Modified,ModifiedBy,CreatedBy/Title,CreatedBy/EMail,ModifiedBy/Title,ModifiedBy/EMail&$expand=CreatedBy,ModifiedBy",
  { headers: { Accept: 'application/json;odata=verbose' } }
);
  • 如果实际要取的是SharePoint列表默认自带的创建人、修改人字段,不要使用CreatedBy、ModifiedBy作为查询字段名,替换为系统字段的内部名Author、Editor,对应请求如下:
this.http.get(
  this.baseurl + "_api/web/lists/getByTitle('mylist')/items?$select=ID,Created,Author,Modified,Editor,Author/Title,Author/EMail,Editor/Title,Editor/EMail&$expand=Author,Editor",
  { headers: { Accept: 'application/json;odata=verbose' } }
);
注意事项
  • $expand参数必须明确指定要展开的用户/查找字段名,否则返回结果中只会返回关联项的ID,甚至直接缺失字段值
  • 如果需要获取用户的具体属性(比如显示名、邮箱、登录账号),需要在$select中以字段名/属性名的格式声明,常用的用户属性包括Title(显示名)、EMail(邮箱)、LoginName(登录账号)

内容的提问来源于stack exchange,提问作者Black Panther

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:01:11