use*_*188 3 angular2-services angular
我正在调用REST端点.我想添加一个资源(下面).但是,当我的服务调用Http的post方法时,它将调用请求,但不返回响应的标头.至少,我遇到了Response实例的空头对象.(??)我确实希望响应头.特别是我希望Location标头作为"REST ADD RESOURCE"模式的一部分.Location标头包含新创建的资源的URL.
关于这一点的奇怪之处在于:当我直接调用我的API(因此不是通过Angular2)时,我得到了确切的响应,但这次是(所有)预期的头文件,包括Location响应头.
呃,Http.post有什么问题或者我做错了吗?
请注意:我的服务在此示例中返回Observable Response.这不是返回给调用者的预期类类型.我正在使用它是为了方便了解帖子响应发生了什么.实际上,我打算传递存储在Location标头中的url.
addModel(model: any): Observable<Response> {
let token = this.loginService.auth.accessToken;
let headers = new Headers({
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': `Bearer ${token}`
});
let options = new RequestOptions({headers: headers});
let data: string = JSON.stringify(model);
return this.http.post(this.url, data, options)
// .map(r => {
// console.log("Response ", r);
// return r.headers.get("Location"); // THERE IS NOTHING IN headers (?). Don't understand.
// })
.catch(err => Observable.throw(err));
}
Run Code Online (Sandbox Code Playgroud)
有了CORS请求,服务器需要添加,Allow-access-expose-headers: headername否则返回的头文件将无法用于JS.
如果响应实际包含标题,您可以在浏览器devtools(网络标签AFARK)中调查请求响应?
| 归档时间: |
|
| 查看次数: |
816 次 |
| 最近记录: |