django vue-cli3 前后端分离csrf验证
前言
之前写过单独的一篇相关django跨域配置部分配置,故这里忽略。
vue配置部分
文件axios.js
let config = {
baseURL: 'http://localhost:8000/',
xsrfCookieName: 'csrftoken',
xsrfHeaderName: 'X-CSRFToken',
withCredentials: true,
//以上三个参数为我添加的csrf相关的必须参数
};
组件调用部分示例
let data = new FormData();
data.append('email', this.ruleForm.email);
data.append('password', this.ruleForm.password_1);
this.axios({
method: 'post',
url: 'signup/',
data: data,
}).then(
res => this.user=this.ruleForm.email
).catch(function (error) {
console.log(error);
}
)
django配置部分
views示例
from django.shortcuts import render, HttpResponse
from django import views
from .models import *
import json
from django.views.decorators.csrf import get_token
class Signup(BaseView):
def post(self, req):
email = req.POST.get('email', '')
password = req.POST.get('password_1', '')
group = Group.objects.get(name='白丁')
User.objects.create(email=email, pwd=password, group=group)
self.resp['code'] = '0000'
self.resp['msg'] = 'success'
return HttpResponse(json.dumps(self.resp), content_type="application/json")
上面的Baseview 基本上就是views.View , 可以忽略
以上内容也是自己经过两天在网上各种查找 可以说是都是一堆坑把 以上就是精华 ?