解决跨越问题
什么是同源策略?
1.协议相同
2.域名相同
3.端口相同
http:www.aaa.com https:www.aaa.com -----------------协议不同
http:www.aaa.com http:www.bbb.com -----------------域名不同
http:www.aaa.com:8080 http:www.aaa.com:8081 -----------------端口不同
只要不满足其中任意一个要求,就不符合同源策略,就会出现“跨域”
怎么解决跨越?
1.pip安装:
pip install django-cors-headers
2.然后将其添加到已安装的应用中:
INSTALLED_APPS =(
...
' corsheaders ',
...
)
3.您还需要添加一个中间件类来监听响应:
MIDDLEWARE = [
...
' corsheaders.middleware.CorsMiddleware ',
' django.middleware.common.CommonMiddleware ',
...
]
CorsMiddleware
应尽可能放置,特别是在可以生成响应的任何中间件之前,例如Django CommonMiddleware
或Whitenoise WhiteNoiseMiddleware
。如果不是之前,它将无法将CORS标头添加到这些响应中。
4、在Django设置中配置中间件的行为。必须将允许跨站点请求的主机添加到CLSIOrthPosixWalelistor,或者将CLSSOrthPosialApple全部设置为true,以允许所有主机。
CORS_ORIGIN_ALLOW_ALL = True
github上配置文档说明:https://github.com/ottoyiu/django-cors-headers