跨域请求问题 django 怎么解决的
时间: 2023-12-16 20:05:19 浏览: 32
跨域请求问题可以通过配置 Django 的中间件来解决。具体方法如下:
首先在 settings.py 中配置中间件:
```
MIDDLEWARE = [
# ...
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
# 新增中间件
'corsheaders.middleware.CorsMiddleware',
]
```
然后在 settings.py 中添加 CORS_ORIGIN_ALLOW_ALL 和 CORS_ALLOW_CREDENTIALS 两个配置项,分别用于允许所有域名进行跨域请求和允许带有凭证的请求:
```
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
```
最后在 views.py 中添加以下装饰器来指定跨域请求可以访问该视图函数:
```
from django.views.decorators.csrf import csrf_exempt
from django.utils.decorators import method_decorator
from django.views import View
@method_decorator(csrf_exempt, name='dispatch')
class MyView(View):
def post(self, request):
# 处理跨域 POST 请求
pass
def get(self, request):
# 处理跨域 GET 请求
pass
```