什么是跨域访问:
跨域访问是指在浏览器中发起一个请求时,该请求的目标资源位于不同的域名、端口或协议下。根据同源策略(Same-Origin Policy),Web浏览器限制了来自不同源(域、端口、协议)的脚本对当前文档的访问。同源策略是为了保护用户的安全,防止恶意网站窃取其他网站的数据。
解决方案:
1.安装django-cors-headers包:在终端中运行以下命令安装包:
pip install django-cors-headers
2.在Django项目的settings.py文件中进行配置:
- 添加corsheaders到INSTALLED_APPS:
INSTALLED_APPS = [
...
'corsheaders',
...
]
- 在MIDDLEWARE中添加CorsMiddleware类:
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
- 添加CORS_ORIGIN_ALLOW_ALL设置为True,以允许所有来源的跨域请求
CORS_ORIGIN_ALLOW_ALL = True
- 如果你想限制允许的源,可以使用CORS_ORIGIN_WHITELIST设置:
CORS_ORIGIN_WHITELIST = [
'http://***.com',
'https://***.com',
]
3.重新启动你的Django应用程序。现在,你的Django应用程序应该能够处理跨域请求了。