在打字稿应用程序中通过http请求获取sharepoint列表项

时间:2017-01-03 09:24:50

标签: sharepoint-2013 typescript2.0

我有一个共享点列表(用户)。我能够在浏览器中使用简单的http请求获取这些数据。这是请求的输出: enter image description here

如下所示检索所有项目,我试图在打字稿服务中实现这一点,这是我的代码片段;

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(禁止) “

因此我遇到了身份验证问题,所以..如何将访问权限嵌入此请求

1 个答案:

答案 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)))
}