首页 > 解决方案 > Axios Token 授权 401 导致 Django Rest Framework

问题描述

我试图在我的 Django 项目中调用 REST api 端点。到目前为止,它在使用 curl,postman 时工作。当我尝试使用 Axios 在我的 django 模板前端调用它时遇到问题。当我检查网络选项卡时,请求返回 401,同时发送参数和令牌。

axios.get(url,{headers: {'Authorization': 'Token 0ca677330f947335a72572bdbdfe305ae7dd8ba6'},params:params})

我也试过

 return axios({
                  method: 'get',
                  url: url,
                  headers: {
                        'Authorization': 'Token 0ca677330f947335a72572bdbdfe305ae7dd8ba6'
                    },
                    params: params
                })

仍然得到401。

任何想法?

更新

现在我弄清楚了原因。当我在 Google 隐身模式下尝试时,它可以工作,我可以通过使用其他浏览器(如 firefox)来确认这一点,现在我更新的问题是,如何删除或刷新以删除缓存?我通过删除应用程序选项卡中的缓存尝试了 chrome 的开发者控制台中的所有内容

标签: djangovue.jsdjango-rest-frameworkaxios

解决方案


将此添加到您的 settings.py 文件中

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES':(
        'rest_framework.authentication.TokenAuthentication',
        'rest_framework.authentication.SessionAuthentication',
    )
}

并确保TokenAuthentication位于顶部。


推荐阅读