http://localhost:8000/怎么获取django的这个
时间: 2024-09-21 20:04:52 浏览: 72
在视图中执行数据库查询的“愚蠢”方式-clough-dynamics of structures
在`http://localhost:8000/`上访问Django服务器上的资源通常涉及跨域资源共享(CORS)设置。当你尝试从非同源的Vue应用程序(如`http://localhost:8080`)发送异步请求到Django(默认情况下,Django服务器不允许跨域请求),会遇到跨域限制。
要解决这个问题,你需要在Django后端进行以下配置:
1. **启用CORS**:
Django-cors-headers库可以帮助管理CORS。安装它:
```bash
pip install django-cors-headers
```
添加到`INSTALLED_APPS`中,并在`settings.py`中添加如下配置:
```python
INSTALLED_APPS += ['corsheaders']
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
...
]
CORS_ORIGIN_WHITELIST = [
'http://localhost:8080', # 允许的来源之一
]
CORS_ALLOW_HEADERS = (
'accept',
'content-type',
'author', # 如果你的请求头包含"author"字段,则在这里添加
...,
)
```
2. **预检请求处理**:
跨域请求通常先发一个OPTIONS请求(也称为预检请求),以确认主请求能否成功。为了响应这些请求,你需要修改视图函数或全局中间件来允许它们:
```python
from rest_framework.views import APIView
from rest_framework.response import Response
class MyAPIView(APIView):
def options(self, request):
allow_headers = ', '.join(CORS_ALLOW_HEADERS)
return Response(
headers={
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
'Access-Control-Allow-Headers': allow_headers,
}
)
```
完成以上配置后,Vue应用应该能够正常地向`http://localhost:8000/`发起跨域请求了。
阅读全文