django vue 前后端分离csrf验证问题

django vue-cli3 前后端分离csrf验证

    • 前言
    • vue配置部分
      • 文件axios.js
      • 组件调用部分示例
    • django配置部分
      • views示例

前言

之前写过单独的一篇相关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 , 可以忽略

以上内容也是自己经过两天在网上各种查找 可以说是都是一堆坑把 以上就是精华 ?

你可能感兴趣的:(django)