加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

无法在Ionic Angular应用程序中从HttpClient读取HttpResponse中

发布时间:2020-12-17 07:59:36 所属栏目:安全 来源:网络整理
导读:我正在请求创建新资源的端点,并返回包含带有新创建资源的“Location”标头的201响应: 但是,当我尝试获取Angular guide中描述的标头值时,我得到一个“null”值而不是实际值.这是我的代码(注意:我正在设置responseType:’text’以避免Json解析错误,因为响应
我正在请求创建新资源的端点,并返回包含带有新创建资源的“Location”标头的201响应:

但是,当我尝试获取Angular guide中描述的标头值时,我得到一个“null”值而不是实际值.这是我的代码(注意:我正在设置responseType:’text’以避免Json解析错误,因为响应主体为空):

(...)
import { HttpClient } from '@angular/common/http';

(...)

  constructor(public navCtrl: NavController,public navParams: NavParams,public http: HttpClient) {
  }

  ionViewDidLoad() {
    let obj = {nome : "SomeName"}
    this.http.post("http://localhost:8080/categorias",obj,{observe: 'response',responseType: 'text'})
    .subscribe(
        (resp) => {
          console.log(resp.headers.get('Location'));
        }
      );
  }

我甚至尝试过console.log(resp.headers)来检查这个对象,它显示了一个完全不同的结构:

如何从新的HttpClient Angular API中获取HttpResponse对象的自定义标头?

我在eTag标题中遇到了类似的问题:这是一个Cross Origin问题.

根据我的记忆,CORS只返回几个简单的标题,例如Cache-Control,Content-Language,Content-Type,Expires,Last-Modified等.

如果要返回特定标头,则必须添加另一个标头Access-Control-Expose-Headers,其中包含要随其返回的标头列表.因此,在您的情况下,Access-Control-Expose-Headers =’location’.

您还需要更改后端以将相同的标题返回给Angular.

希望这可以帮助 !

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读