天天看點

axios發送POST請求,django無法接收問題問題描述:原因分析:解決方案:

問題描述:

Vue3 + Django3 前端使用axios發送POST請求,django無法接收

前端控制台報錯403

axios發送POST請求,django無法接收問題問題描述:原因分析:解決方案:

後端終端報錯

axios發送POST請求,django無法接收問題問題描述:原因分析:解決方案:

原因分析:

因為設定請求頭X-CSRFToken

解決方案:

通過axios請求攔截器,設定請求頭X-CSRFToken,值為Cookie中的csrftoken值

import axios from 'axios'
const req = axios.create({...})
req.interceptors.request.use((config)=>{
    config.headers['X-Requested-With'] = 'XMLHttpRequest';
	let regex = /.*csrftoken=([^;.]*).*$/;    // 用于從cookie中比對csrftoken值
	if(document.cookie.match(regex) === null){
		config.headers['X-CSRFToken'] = null;
	}else{
		config.headers['X-CSRFToken'] = document.cookie.match(regex)[1];    // 手動指派X-CSRFToken
	}
	return config
})