簡體   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