我是GoLang + React的新学习者。这样我就开始了一个学习项目。我用GoLang制作了RESTful Api。 api Link。我用该api制作了登录系统。成功地,我可以登录并将用户数据设置为sessionStorage。但是问题是当我尝试通过使用axios击api的注销端点来注销用户时。第一次显示未经授权。第二次显示网络错误。
这是请求代码:
logout = () => {
const user = JSON.parse(sessionStorage.getItem('userData'));
const token = user.token;
const uid = user.id;
const url = "http://localhost:8000/logout"
axios.post(url,{"user_id":uid},{"Authorization":`Bearer ${token}`}).then((response) => response.json()).then((result) => {
let responseJson = result;
console.log(responseJson);
}).catch((error) => {
console.log(error);
})
}
注意:通过客户端应用程序,我可以成功注销。但是,通过axios我不能。
答案 0 :(得分:1)
您需要在Axios config对象的headers
属性下提供 auth标头:
axios.post(
url,
{ user_id: uid },
{ headers: { 'Authorization': `Bearer ${token}` } }
)
说明:
这是axios发布方法签名,请选中docs:
axios.post(url[, data[, config]])
第三个参数config
应该具有以下接口:
{
...
baseURL?: string;
headers?: any; // this is for headers
params?: any;
....
}
答案 1 :(得分:1)
我通过将此代码添加到package.json文件中解决了该问题
"proxy":"http://localhost:your_port"