尽管有授权标头,但 Axios 请求返回 401

时间:2021-01-12 18:06:58

标签: javascript reactjs axios

我正在尝试使用 axios 使用以下代码段将数据修补到 django API:

nextQuestion = () => {
  if (this.state.currentIndex === 0) return;

  const token = this.props.token;
  const configs = {
    headers: {
      Authorization: `Token ${token}`,
    },
    data: {
      quiztaker: this.state.data[0].quiz.quiztakers_set.id,
      question: this.state.data[0].quiz.question_set[this.state.currentIndex]
        .id,
      answer: Number(this.state.answer),
    },
  };
  console.log(configs);
  axios
    .patch("/api/save-answer/", configs)
    .then((response) => {
      console.log(response);
    })
    .catch((error) => {
      console.log(error);
    });

  this.setState({
    currentIndex: this.state.currentIndex - 1
  });
};

我已经确认令牌确实存在,并且它被授权通过失眠访问和更改该端点。我在设置 axios 时做错了什么吗?或者还有什么我没有得到的?如果这是一个明显的错误,请道歉,反应还很新。

1 个答案:

答案 0 :(得分:1)

使用 axios.patch() 应该执行 axios.patch(url, data, config)...

const data = {
  "quiztaker": this.state.data[0].quiz.quiztakers_set.id,
  "question": this.state.data[0].quiz.question_set[this.state.currentIndex].id,
  "answer": Number(this.state.answer),
};
const token = this.props.token;
const configs = {
  "headers": {
    "Authorization": `Token ${token}`,
  },
};

axios
  .patch("/api/save-answer/", data, configs)
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.log(error);
  });