【发布时间】:2023-04-06 14:55:01
【问题描述】:
我正在尝试从 Vue.js 模板向我使用 Django 创建的 API 发送 POST 请求。 发送时,我收到 403 CSRF 令牌丢失或错误错误。由于我将正面和背面分开,因此我在 Django 端没有带有 {csrf_token} 的视图。
如何发送我的表格?
我在网上尝试了一些使用 cookie 的示例,但我是初学者,需要更多关于 POST 主题和 CSRF 的解释
我有一个像这样的 Djano 视图(和相关的 url):
def get_csrf_token(request):
token = get_token(request)
return JsonResponse({'token': token})
当我请求 url 时,获得了带有令牌的 JSON。
在前端我使用这种方法来获取令牌:
getToken: function() {
this.loading = true;
this.$http.get('/qualite/get-token/')
.then((response) => {
this.token =response.data;
this.loading = false;
})
.catch((err) => {
this.loading = false;
console.log(err);
})
},
addNc: function() {
let headers = {
'Content-Type': 'application/json;charset=utf-8'
};
if(this.token !== '') {
headers['HTTP_X-XSRF-TOKEN'] = this.token
}
this.loading = true;
this.$http.post('/qualite/api/nc/',this.newNc, {headers: headers})
.then((response) => {
this.loading = false;
})
.catch((err) => {
this.loading = false;
console.log(err)
})
},
【问题讨论】:
标签: django vue.js django-rest-framework csrf