在请求中设置 Cookie Headers Angular2
Set Cookie in Request Headers Angular2
我是 angular2 的新手。我的服务器 (spring) 在其响应 headers.
中使用 set-cookie 值响应身份验证
如何将该 cookie 设置为下一个 API 调用的请求 headers?
我搜索了很多,但找不到合适的解决方案。
作为 http.get()
or http.post()
methods you can specify the RequestOptionsArgs
的一部分
使用 RequestOptionsArgs
中的 Headers
指定您需要的身份验证 header。
粗略的例子,见下:
class PeopleComponent {
constructor(http: Http) {
let customHeaders: Headers = new Headers();
customHeaders.append('myHeaderName', 'myHeaderValue');
http.get('http://my.web/service', { headers: customHeaders })
.map(res => res.json())
.subscribe(people => this.people = people);
}
}
在我为您的域保存后,Cookie 会自动附加到您拨打的每个电话。
你做错了其他事情。如果您想创建将身份验证数据附加到 REST 调用的自动机制,请参阅创建自定义 HttpInterceptor 的教程:
https://medium.com/aviabird/http-interceptor-angular2-way-e57dc2842462
如果是 CORS 场景,您需要在 RequestOptions 中添加 withCredentials 属性 设置为 true。下面是我如何在我的 HTTP 助手中实现的片段:
get(resource: string) {
return this.http.get(`/api/${resource}`, this.getRequestOptions())
.map(result => result.json())
.catch(e => e.status === 401 ? Observable.throw('Unauthorized') : e.json());
}
post(resource: string, body: any) {
return this.http.post(`/api/${resource}`, body, this.getRequestOptions())
.map(result => result.json())
.catch(e => e.status === 401 ? Observable.throw('Unauthorized') : e.json());
}
private getRequestOptions() {
const headers = new Headers({
'Content-Type': 'application/json',
});
return new RequestOptions({headers: headers, withCredentials: true});
}
我是 angular2 的新手。我的服务器 (spring) 在其响应 headers.
中使用 set-cookie 值响应身份验证如何将该 cookie 设置为下一个 API 调用的请求 headers?
我搜索了很多,但找不到合适的解决方案。
作为 http.get()
or http.post()
methods you can specify the RequestOptionsArgs
使用 RequestOptionsArgs
中的 Headers
指定您需要的身份验证 header。
粗略的例子,见下:
class PeopleComponent {
constructor(http: Http) {
let customHeaders: Headers = new Headers();
customHeaders.append('myHeaderName', 'myHeaderValue');
http.get('http://my.web/service', { headers: customHeaders })
.map(res => res.json())
.subscribe(people => this.people = people);
}
}
在我为您的域保存后,Cookie 会自动附加到您拨打的每个电话。 你做错了其他事情。如果您想创建将身份验证数据附加到 REST 调用的自动机制,请参阅创建自定义 HttpInterceptor 的教程:
https://medium.com/aviabird/http-interceptor-angular2-way-e57dc2842462
如果是 CORS 场景,您需要在 RequestOptions 中添加 withCredentials 属性 设置为 true。下面是我如何在我的 HTTP 助手中实现的片段:
get(resource: string) {
return this.http.get(`/api/${resource}`, this.getRequestOptions())
.map(result => result.json())
.catch(e => e.status === 401 ? Observable.throw('Unauthorized') : e.json());
}
post(resource: string, body: any) {
return this.http.post(`/api/${resource}`, body, this.getRequestOptions())
.map(result => result.json())
.catch(e => e.status === 401 ? Observable.throw('Unauthorized') : e.json());
}
private getRequestOptions() {
const headers = new Headers({
'Content-Type': 'application/json',
});
return new RequestOptions({headers: headers, withCredentials: true});
}