我有一个共享点列表(用户)。我能够在浏览器中使用简单的http请求获取这些数据。这是请求的输出:
如下所示检索所有项目,我试图在打字稿服务中实现这一点,这是我的代码片段;
getUsers() : Observable<Users[]> {
var headers = new Headers();
headers.append('accept', 'application/json;odata=verbose');
return this.http_.get("https://yeneryilmaz1-3200ef41d84877.sharepoint.com/Sharepoint-TS-Angular2/_api/web/lists/getByTitle('User')/items",{headers})
.map((res:Response) => res.json())
.catch((error:any) => Observable.throw(error.json().error || 'Server error'));
}
但它总是引发异常..如何通过http请求获取列表项目,而且我知道我需要添加来自sharepoint帐户的访问令牌,如何将它们添加到标题?
EDITED : 服务器在浏览器控制台中对此请求的响应:“获取https://yeneryilmaz1- ***。sharepoint.com/Sharepoint-TS-Angular2/_api/web/lists/getByTitle('User')/items 403(禁止) “
因此我遇到了身份验证问题,所以..如何将访问权限嵌入此请求
答案 0 :(得分:0)
你非常接近。您还需要在标题中添加授权。
确保您正在导入&#39;标题&#39;来自http。
import { Http, Response, RequestOptionsArgs, Headers } from '@angular/http';
电话:
getUserData(): Observable<IUsers[]> {
var _headers = new Headers();
_headers.append('Content-Type', 'application/json');
_headers.append('Authorization', 'Bearer ' + access_token_here);
return this._http.get(this._protocolUrl, {
headers: _headers
})
.map((res: Response) => <IUser[]> res.json())
.do(data => console.log('All: ' + JSON.stringify(data)))
}