2016-06-18 13 views
27

Tôi đang tạo ứng dụng giao diện người dùng với React và Redux và tôi đang sử dụng axios để thực hiện các yêu cầu của mình. Tôi muốn truy cập vào tất cả các trường trong tiêu đề của phản hồi. Trong trình duyệt của tôi, tôi có thể kiểm tra header và tôi có thể thấy rằng tất cả các lĩnh vực mà tôi cần có mặt (ví dụ như thẻ, uid, vv ...), nhưng khi tôi gọiCác trục có quyền truy cập vào các trường tiêu đề phản hồi

const request = axios.post(`${ROOT_URL}/auth/sign_in`, props); 
request.then((response)=>{ 
    console.log(response.headers); 
}); 

tôi nhận được chỉ

Object {content-type: "application/json; charset=utf-8", cache-control: "max-age=0, private, must-revalidate"} 

Tại đây tab mạng trình duyệt của tôi, vì bạn có thể thấy tất cả các trường khác đều có mặt.

enter image description here

Bài kiểm tra.

+0

Nếu bạn in ra axios.defaults.headers có cung cấp cho bạn bất kỳ thứ gì bạn đang thiếu không? Một số tiêu đề được định cấu hình ở cấp đó, không phải ở đầu mỗi yêu cầu (xem https://github.com/mzabriskie/axios#global-axios-defaults) –

+1

Không phải là 'axios.defaults.headers' để định cấu hình tiêu đề REQUEST params? Tôi cần truy cập vào RESPONSE. @BenHare – TWONEKSONE

+0

BTW, những gì bạn gọi là yêu cầu, không phải là yêu cầu. Đó là một lời hứa cho phản ứng của bạn. Yêu cầu của bạn là những gì bạn đã chuyển đến phương thức post() làm đối số. – Daniel

Trả lời

62

Trong trường hợp yêu cầu CORS, trình duyệt chỉ có thể truy cập vào các tiêu đề phản ứng sau đây theo mặc định:

  • Cache-Control
  • Content-Language
  • Content-Type
  • Expires
  • cuối -Đã sửa đổi
  • Pragma
.210

Nếu bạn muốn ứng dụng khách hàng của bạn để có thể truy cập vào tiêu đề khác, bạn cần phải thiết lập các Access-Control-Expose-Headers tiêu đề trên máy chủ:

Access-Control-Expose-Headers: Access-Token, Uid 
+0

Tệ của tôi Tôi quên để lộ các trường đó. – TWONEKSONE

+3

Nếu bạn đang sử dụng Rails với Rack-Cors, bạn cần đặt 'expose: ['Access-Token', 'Uid']' trên nguồn gốc như: 'resource '*',: headers =>: any,: methods = > [: get,: post,: put,: patch,: delete,: options,: head], phơi bày: ['Access-Token', 'Uid'] ' – CWitty

-1

người dùng php làm điều này

header('Access-Control-Expose-Headers: Authentication'); 
Các vấn đề liên quan