[英]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.