[英]How to get Angular 2 response headers
我正在使用Angular 2从我的Rails API服务器请求JSON。 我的服务器设置为响应标头X-Total-Count: 10
。 我的服务器成功发送了这些标头:
但是当我尝试使用console.log(res.headers)
http响应时,我只收到带有Content-Type
和Cache-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.