django rest framework 报错post 403
时间: 2023-10-04 19:07:38 浏览: 123
django rest framework 实现用户登录认证详解
5星 · 资源好评率100%
Django REST Framework 报错 POST 403 是因为没有通过 CSRF 验证。
Django 默认开启了 CSRF 保护,如果你使用了 Django REST Framework,那么需要在请求头中添加 CSRF Token,才能成功 POST。
解决方法:
1. 在前端发送 POST 请求时,将 CSRF Token 添加到请求头中。
2. 在后端的视图函数中,加上 `@csrf_exempt` 装饰器,禁用 CSRF 验证。
下面是代码示例:
在前端发送 POST 请求时,添加 CSRF Token:
```
import axios from 'axios'
axios.defaults.headers.common['X-CSRFToken'] = document.querySelector('[name=csrfmiddlewaretoken]').value
axios.post('/api/your_api/', data)
```
在后端的视图函数中,添加 `@csrf_exempt` 装饰器:
```
from django.views.decorators.csrf import csrf_exempt
from rest_framework.decorators import api_view
@api_view(['POST'])
@csrf_exempt
def your_api(request):
# your code here
```
注意:禁用 CSRF 验证可能会存在安全风险,建议仅在必要的情况下使用。
阅读全文