Django+vue前后端分离 用axios post请求报错问题
前端:
axios.("/xxxxx/getToken/", {}).then((res) => {
sessionStorage.setItem("csrftoken111",res.token) //向后台请求并获取csrftoken
});
request.js 中添加
FEBS_REQUEST.interceptors.request.use(
config => {
let csrftoken111 = sessionStorage.getItem("csrftoken111")
config.headers.post["X-CSRFtoken"] = csrftoken111 //post请求头里添加X-CSRFtoken参数
return config;
},
err => {
Message.error("参数错误");
return Promise.reject(err);
}
);
后端:setting.py(或setting/base.py)中 添加 'django.middleware.csrf.CsrfViewMiddleware'
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware', //新加
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
# 加入simplepro的中间件
'simplepro.middlewares.SimpleMiddleware',
# 'middlewares.Mycors',
]