繁体   English   中英

如何获取Angular 2响应头

[英]How to get Angular 2 response headers

我正在使用Angular 2从我的Rails API服务器请求JSON。 我的服务器设置为响应标头X-Total-Count: 10 我的服务器成功发送了这些标头:

服务器响应

但是当我尝试使用console.log(res.headers) http响应时,我只收到带有Content-TypeCache-Control_headersMap

在此输入图像描述

这是我的Rack :: Cors配置:

config.middleware.insert_before 0, "Rack::Cors" do
    allow do
        origins '*'
        resource '*', headers: :any, methods: [:get, :post, :options, :patch, :delete], expose: ['X-Total-Count']
    end
end

我在控制器中设置标头的方式:

  def index
    ...
    @posts = ...

    response.headers['X-Total-Count'] = '10'
    response.headers['Access-Control-Allow-Headers'] = 'X-Total-Count'

    render json: @posts
  end

如何确保X-Total-Count出现在_headersMap 或者,如何访问X-Total-Count值响应?

发现了这个问题。 即使我通过Rack::Cors配置公开了标题,但在我做出修改以解决此弃用问题之前,它仍无效。 现在,在config/initializers/cors.rb设置的以下配置正确公开了标头:

Rails.application.config.middleware.insert_before 0, Rack::Cors do
  allow do
    origins '*'
    resource '*',
    headers: :any,
    methods: [:get, :post, :put, :patch, :delete, :options, :head],
    expose: ['X-Total-Count']
  end
end

根据alpha中发布的这个错误,这是由于您的浏览器认为某些标题“不安全”并拒绝其访问权限。 该线程中的修复是为服务器响应添加标头:

access-control-expose-headers: x-total-count

这是因为CORS。 只有在CORS启用时,您才能在地图中看到标题。

您的服务器需要在标头中返回以下内容:

Access-Control-Allow-Headers: X-Total-Count

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM