django CORs policy: No 'Access-Control-Alow-Origin' header is present on the reguested resource
时间: 2023-06-29 19:20:55 浏览: 175
这个错误通常是由于浏览器中的CORS(跨域资源共享)政策限制导致的。要解决这个问题,你可以尝试在Django中使用django-cors-headers来添加正确的CORS头部信息。
安装django-cors-headers:
```
pip install django-cors-headers
```
然后,在Django的settings.py文件中添加以下配置:
```
INSTALLED_APPS = [
# ...
'corsheaders',
# ...
]
MIDDLEWARE = [
# ...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
# ...
]
CORS_ORIGIN_ALLOW_ALL = True
```
这将允许所有的跨域请求。如果你只想允许特定的域名请求,可以将CORS_ORIGIN_ALLOW_ALL设置为False并添加以下配置:
```
CORS_ORIGIN_WHITELIST = [
'http://your-allowed-domain.com',
# ...
]
```
希望这能帮助你解决问题!
相关问题
django 怎么解决has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
Django是一个流行的Python web框架,它提供了许多工具和库来开发web应用程序。CORS(Cross-Origin Resource Sharing)是浏览器的一个安全策略,用于限制跨域访问,以保护用户的安全性。当你在使用Django开发web应用程序时,可能会出现“has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource”这个错误,这是由于浏览器的CORS策略导致的。
为了解决这个问题,你需要在Django中添加一个中间件,该中间件将在响应中添加CORS头。有几个Django的第三方库可以帮助你轻松地实现这个功能,例如django-cors-headers。安装django-cors-headers之后,在你的settings.py文件中添加以下配置:
```
INSTALLED_APPS = [
...
'corsheaders',
...
]
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
CORS_ORIGIN_ALLOW_ALL = True
```
上述配置将允许所有来源的请求访问你的Django应用程序。你也可以通过设置CORS_ORIGIN_WHITELIST属性来限制允许访问的来源。
vue has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource
引用和引用[2]提供了关于如何解决CORS跨域问题的方法。在Django项目中,您可以使用django-cors-headers来处理CORS跨域请求。首先,您需要在项目的settings.py文件中添加corsheaders中间件和应用。然后,您可以通过配置CORS_ORIGIN_WHITELIST来设置允许跨域请求的白名单。最后,确保将CORS_ALLOW_CREDENTIALS设置为False,以防止携带cookie的跨域请求。这样,您就可以解决"vue has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource"的问题了。
阅读全文