angular - 任何想法如何向此功能添加标题?

标签 angular rest typescript token

有什么想法可以将标题添加到下面显示的函数中吗?我创建了登录服务并获得了响应状态 200。但是,当我尝试发送 GET 请求时,我得到了加载资源失败:服务器响应状态为 403(禁止访问)。

  func() {
    return this.http.get('/data', )
        .map(response => response.json())
        .subscribe(response2 => this.response2 = response2);
}

我的获取:

get(url: string, options?: RequestOptionsArgs): Observable<Response> {
    return super.get(appConfig.apiUrl + url, this.addJwt(options)).catch(this.handleError);
}

 private addJwt(options?: RequestOptionsArgs): RequestOptionsArgs {
        // ensure request options and headers are not null
        options = options || new RequestOptions();
        options.headers = options.headers || new Headers();

        // add authorization header with jwt token
        let currentUser = JSON.parse(localStorage.getItem('currentUser'));
        if (currentUser && currentUser.token) {
            options.headers.append('Authorization', 'Bearer ' + currentUser.token);
        }

        return options;
    }

解决方案 问题是后端期望 token 以 Token 132083128901302 的形式发送,但我发送的是 Bearer 132083128901302。将 Bearer 更改为 Token 后一切正常。

最佳答案

let headers = new Headers({ 'Authorization': 'Bearer ' + jwt });
let options = new RequestOptions({ headers: headers });
return this.http.get('http://test.dev/get/user', options).map(res => res.json());

我强烈建议您通过 HttpClient 模块使用拦截器。它易于实现,应用程序中的代码更少,更易于管理。

关于angular - 任何想法如何向此功能添加标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46268694/

相关文章:

typescript - 为什么 Lerna 总是发布我所有的包?

typescript - Angular 2 : Application freezing when model is changed from select input

html - 将子组件变量与父组件 Angular 4 中的下拉列表绑定(bind)

angular - 如何在ionic 3中的div内设置背景图像?

没有 IIS 的 c# rest webservice

javascript - 如何减少 AJAX 密集型 Web 应用程序中的 HTTP 请求数量?

javascript - 直接在 d3 对象和 d3-context-menu 上 typescript /原型(prototype)

javascript - 获取从 (keypress) angular2 按下哪个键

python - RESTful API 和谷歌分析

javascript - ionic 2 : How I can adding a new item to an object?