2017-06-18 60 views
5

Tôi đã viết một yêu cầu Axios POST theo khuyến cáo từ các tài liệu hướng dẫn gói NPM nhưphần đầu Đi qua với yêu cầu Axios POST [ReactJS]

var data = { 
     'key1': 'val1', 
     'key2': 'val2' 
} 
axios.post(Helper.getUserAPI(), data) 

      .then((response) => { 
       dispatch({type: FOUND_USER, data: response.data[0]}) 
      }) 
      .catch((error) => { 
       dispatch({type: ERROR_FINDING_USER}) 
      }) 

Và nó hoạt động, nhưng bây giờ tôi đã sửa đổi API backend của tôi để chấp nhận Headers

Content-type: 'application/json'

Authorization: 'JWT fefege ...'

Hiện tại, yêu cầu này hoạt động tốt trên POSTMAN, nhưng khi viết cuộc gọi qua trục, tôi thực hiện theo this link và không thể làm cho nó hoạt động.

Tôi contantly nhận 400 BAD Request error

Dưới đây là yêu cầu sửa đổi của tôi

axios.post(Helper.getUserAPI(), { 
       headers: { 
        'Content-Type': 'application/json', 
        'Authorization': 'JWT fefege...' 
       }, 
       data 
      }) 

      .then((response) => { 
       dispatch({type: FOUND_USER, data: response.data[0]}) 
      }) 
      .catch((error) => { 
       dispatch({type: ERROR_FINDING_USER}) 
      }) 

Any help is appreciated rất

Cảm ơn trước.

Trả lời

12

Khi sử dụng Axios, để thông qua tiêu đề tùy chỉnh, cung cấp một đối tượng có chứa các tiêu đề như là đối số cuối cùng

Sửa Axios của bạn yêu cầu như

 var headers = { 
      'Content-Type': 'application/json', 
      'Authorization': 'JWT fefege...' 
     } 
     axios.post(Helper.getUserAPI(), data, headers) 

      .then((response) => { 
       dispatch({type: FOUND_USER, data: response.data[0]}) 
      }) 
      .catch((error) => { 
       dispatch({type: ERROR_FINDING_USER}) 
      }) 
+0

Cảm ơn nó hoạt động :) – Jagrati

+0

Không hoạt động, nhận 500. bạn có thể giúp tôi không? –

+0

@KishoreJethava, 500 là lỗi máy chủ nội bộ, bạn có thể kiểm tra trên phía máy chủ nếu tiêu đề đang đến hoặc là có một số lỗi khác –

0

Dưới đây là một ví dụ đầy đủ của một Axios. yêu cầu bài với tiêu đề tùy chỉnh

var postData = { 
 
    email: "[email protected]", 
 
    password: "password" 
 
}; 
 

 
let axiosConfig = { 
 
    headers: { 
 
     'Content-Type': 'application/json;charset=UTF-8', 
 
     "Access-Control-Allow-Origin": "*", 
 
    } 
 
}; 
 

 
axios.post('http://<host>:<port>/<path>', postData, axiosConfig) 
 
.then((res) => { 
 
    console.log("RESPONSE RECEIVED: ", res); 
 
}) 
 
.catch((err) => { 
 
    console.log("AXIOS ERROR: ", err); 
 
})

Các vấn đề liên quan