我正在尝试使用我的api来测试我的jwt,但是出现此错误: index.js:1375类型错误:无法在“窗口”上执行“获取”:使用GET / HEAD方法的请求不能具有正文
这是我在reactjs中的方法:
getDate = () => {
console.log(JSON.parse(sessionStorage.getItem('token')));
const data = {token: sessionStorage.getItem('token')};
const requestInfo = {
method:'GET',
body: JSON.stringify({data}),
headers: new Headers({
'Content-Type': 'application/json'
}),
};
console.log('chegouaq');
fetch('http://localhost:9000/users', requestInfo)
.then(response => {
console.log('chegouaq2');
if(response.ok){
return response.json();
}
throw new Error("Token Invalido..")
})
.then(data => {
console.log(JSON.stringify(data));
return;
})
.catch(e => {
this.setState({message: e.message})
console.error(e);
});
}
我将jwtToken保存在sessionStorage中 并使用以下方法将其发送到我的后端以验证此令牌:
app.route('/users')
.all(app.auth.authenticate())
.get((req,res)=>{
usersController
.getAll()
.then(data => {
res.json(data);
})
.catch(error=>{
console.log(error);
res.status(400);
});
})
这是我的.all(app.auth.authenticate()):
authenticate:()=> passport.authenticate('jwt',jwtConfig.session)
答案 0 :(得分:0)
这是因为您尝试使用GET
发出body
请求。
获取请求没有正文,只有POST
,PATCH
和PUT
将以下内容更改为POST
。
const requestInfo = {
method: 'POST', // change here
body: JSON.stringify({data}),
headers: new Headers({
'Content-Type': 'application/json'
}),
};
请记住正确阅读您的错误,因为有时它们有时很有趣,请解释出什么问题了:)