无法在React Native中发送带有自定义标头和数据的POST请求

时间:2019-02-06 09:30:01

标签: android reactjs react-native

我正在尝试使用自定义标头和数据将发布请求发送到服务器,但是服务器在android上接收到空对象。我正在使用axios 0.18.0和react-native 0.57.8

const Feedback  = () => {
    return dispatch => {
        dispatch(fetchingData(true));
        axios.post(url, {x: 'x'}).then(res => {
            dispatch(fetchDataSuccess(true));
            dispatch(feedback(res.data));
        }).catch(err => {
            dispatch(fetchDataFailure(err));
        });
}

和axios的标头:

axios.defaults.headers.common['Authorization'] ="Bearer " + e;

我测试过,这不是服务器问题。我也尝试通过提取发送它。

2 个答案:

答案 0 :(得分:0)

您可以添加标头的配置,并将其添加到“反馈”中

const config = {
            headers: {
                'content-type': 'multipart/form-data',
                'Authorization': 'Bearer '+token
            }
        };
    const Feedback  = () => {
        return dispatch => {
            dispatch(fetchingData(true));
            axios.post(url, config).then(res => {
                dispatch(fetchDataSuccess(true));
                dispatch(feedback(res.data));
            }).catch(err => {
                dispatch(fetchDataFailure(err));
            });
    }

答案 1 :(得分:0)

您需要将标头作为第三个参数传递给api调用

const Feedback = () => {
  return dispatch => {
    dispatch(fetchingData(true));
    axios.post(
        url,
        { x: "x" },
        {
          headers: {
            authorization: "your authorization"
          }
        }
      )
      .then(res => {
        dispatch(fetchDataSuccess(true));
        dispatch(feedback(res.data));
      })
      .catch(err => {
        dispatch(fetchDataFailure(err));
      });
  };
};