Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.6k views
in Technique[技术] by (71.8m points)

javascript - Axios request returns 401 despite having an authorization header

I'm trying to patch data to a django API using axios using this snippet:

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
  });
};

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

With axios.patch() it should be executed 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);
  });

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...