解决跨越问题

什么是同源策略? 

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

posted @ 2019-01-26 15:02  儒雅的九弦  阅读(397)  评论(0编辑  收藏  举报