Angular2的Http.post不会在POST方法调用的响应中返回标头
发布时间:2020-12-17 17:02:16 所属栏目:安全 来源:网络整理
导读:我正在调用REST端点.我想添加一个资源(下面). 但是,当我的服务调用Http的post方法时,它将调用请求,但不返回响应的头.至少,我遇到了Response实例的空头对象. (??) 我确实希望响应标题.特别是我希望Location标头作为“REST ADD RESOURCE”模式的一部分. Locati
我正在调用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)); } 解决方法
使用CORS请求,服务器需要添加Allow-access-expose-headers:headername,否则返回的头文件将无法用于JS.
如果响应实际包含标题,您可以在浏览器devtools(网络标签AFARK)中调查请求响应? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在AngularJS中的var vs this vs scope(1.4)
- 如何预先填充Angular 2中的数据?使用FormGroup?
- Twitter的Future.collect无法同时工作(Scala)
- twitter-bootstrap – Bootstrap – 响应式布局与流体布局
- ofbiz的webservice接口提供(4)-支持复杂数据类型方法
- bash测试中的复合条件组[副本]
- Bootstrap CSS 代码
- scala – 习语使用Java可比较对象
- 使用primeNg表,Angular`ng-content`无法正常工作
- 我是否应该担心yum update突然想在我的CentOS 6系统上更新1