【问题标题】:Angular 7 Unable to get http headersAngular 7无法获取http标头
【发布时间】:2019-01-16 00:24:48
【问题描述】:

我试图在没有 python 的情况下进行一些抓取,只是来自 web angular 应用程序的一个简单的 http get 请求,问题是响应,我需要获得对标头的访问权限,以获取 csrftoken 标头。

error: SyntaxError: Unexpected token < in JSON at position 0 at JSON.parse (<anonymous>) at XMLHttpRequest.onLoad (http://localhost:4200/vendor.

代码:

const headers = new HttpHeaders().set('Content-Type', 'text/html; charset=utf-8');

const r = this.http.request<HttpResponse<Object>>('GET', 'https://www.example.com', {
  headers: headers
});

【问题讨论】:

标签: angular


【解决方案1】:

您的服务器需要公开 Access-Control-Expose-Headers 标头才能从 js 访问您需要的标头。

如果您的响应不是有效的 json,请尝试根据请求使用观察属性 (observe: 'response') 以防止 Angular 将其解析为 json

【讨论】:

  • 对于CORS主题,我目前正在使用一种解决方法,chrome有一些插件,另一部分是我设置了该选项,我仍然将响应作为JSON处理方法.
  • 我也遵循了这个指南:angular.io/guide/http#reading-the-full-response
  • observer 和 responseType 属性的组合成功了!是的,正如您提到的,我需要设置 Access-Control-Expose-Headers 以从 Web 客户端访问顶级标头,但在我的情况下,在正文中,有一个定义了 csrftoken 的元标记,以便工作给我!非常感谢您帮助我找到解决方案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-06
  • 2018-04-09
  • 1970-01-01
  • 2015-04-10
  • 2016-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多