Django解决跨域的问题
由于浏览器的同源策略(是⼀种浏览器为安全性考虑实施的安全策略),当从⼀个域上加载的脚本去访问另⼀个域的⽂档属性时,则会被拒绝。同源指:URL由协议、域名、端⼝和路径组成,如果两个URL的协议、域名和端⼝相同,则为同源,否则为跨域。
跨域仅限于使⽤XMLHttpRequest对象和Fetch发起的HTTP请求。
Django如何解决跨域:django前端模板
1、安装模块
pip install django-cors-headers
2、settings.py配置⽂件设置
添加App
添加中间件,需要注意放的位置,在SessionMiddleware后⾯以及CommonMiddleware前⾯
添加配置参数
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = (
'',
':8001',
)
CORS_ALLOW_METHODS = ('DELETE', 'GET', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'VIEW',)
CORS_ALLOW_HEADERS = (
'XMLHttpRequest',
'X_FILENAME',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
'Pragma',
'x-token',
)
到这⼀步所有的跨域配置其实都已经配置完成了,但是需要注意的是,有些前端访问时console依旧报跨
域的问题,这⾥⼀般会有两种情况,也是我所遇到的,其实都很简单。第⼀个是注意CORS_ALLOW_HEADERS,有些web前端可能还有其它的⼀些头部,当访问还是存在有跨域的时候,注意看是否存在上⾯没有的头部,添加上去即可。
第⼆个则是你后端Django程序报错,如果程序报错,前端console也会打印出跨域的信息出来,这个时候要检查⼀下Django代码。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论