你好,程序员,
我遇到以下问题。我使用axios进行发布请求,如下所示:
componentDidMount() {
const config = {
headers: { Authorization: `Bearer ${Auth.getToken()}` },
};
const urlCategories = "http://localhost:8090/category";
axios.get(urlCategories, config).then((res) => {
const categories = res.data;
this.setState({ categories });
console.log(this.state.categories);
});
const urlTricks = "http://localhost:8090/trick/" + Auth.parseJwt().sub;
axios.get(urlTricks, config).then((res) => {
const tricks = res.data;
this.setState({ tricks });
console.log(this.state.tricks);
});
}
这有效! :D
然后我想做同样的事情,但是后来,所以我几乎复制了这个按钮...我得到401,但看不到两者之间的任何实际差异。我什至问过我的老师,他不知道答案。
handleChecked = () => {
if (this.state.learned) {
this.setState(
{
learned: false,
},
() => {
console.log("Should be false and is: " + this.state.learned);
const config = {
headers: { Authorization: `Bearer ${Auth.getToken()}` },
};
axios
.post(
"http://localhost:8090/user/" +
Auth.parseJwt().sub +
"/" +
this.props.id +
"/" +
this.state.learned,
config
)
.then(() => {
console.log(this.props.name + " set to: " + this.state.learned);
});
}
);
} else { }
奇怪的是;它在Postman中有效,所以我的结论是前端一定有问题。后端应该还可以。如果您感到好奇:Auth.parseJwt()。sub获取用户名(我知道这是用户名的怪异名称)。另一个奇怪的事情是,当我在Chrome Inspect概述中复制URL并在Postman中使用它时,它可以工作...
有人知道或看到此代码有什么问题吗?
我的名字叫Appeltaart,如果可以用邮递员使用,那么后端应该就如您所说的一样好。您可以从头开始应用程序,也可以尝试以下方法:D
axios.post(`http://localhost:8090/user/${Auth.parseJwt().sub}/${this.props.id}/${this.state.learned}`, {
headers: {
Authorization: `Bearer ${Auth.getToken()}`,
"Content-Type": "application/json"
}
}).then(() => {
console.log(this.props.name + " set to: " + this.state.learned);
});
友好的问候,您的Applepie