Làm cách nào để gửi tiêu đề xác thực bằng mã thông báo qua axios.js? Tôi đã thử một vài điều mà không thành công, ví dụ:
const header = `Authorization: Bearer ${token}`;
return axios.get(URLConstants.USER_URL, { headers: { header } });
Cho tôi lỗi này:
XMLHttpRequest cannot load http://localhost:8000/accounts/user/. Request header field header is not allowed by Access-Control-Allow-Headers in preflight response.
Tôi đã quản lý để nó hoạt động bằng cách đặt mặc định chung, nhưng tôi đoán đây không phải là ý tưởng tốt nhất cho một yêu cầu:
axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;
Cập nhật:
Câu trả lời của Cole đã giúp tôi tìm ra vấn đề. Tôi đang sử dụng phần mềm trung gian django-cors-headers, phần mềm này đã xử lý tiêu đề ủy quyền theo mặc định.
Nhưng tôi có thể hiểu thông báo lỗi và đã sửa lỗi trong mã yêu cầu axios của mình, mã này sẽ giống như thế này
return axios.get(URLConstants.USER_URL, { headers: { Authorization: `Bearer ${data.token}` } });
return axios.get(URLConstants.USER_URL, { headers: { Authorization: `Bearer ${data.token}` } });