django解决跨域问题

88 阅读1分钟

什么是跨域?

跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制

同源策略:是指协议,域名,端口都要相同,其中有一个不同都会产生跨域
不同源的客户端脚本(javascript、ActionScript)在没明确授权的情况下,不能读写对方的资源。

django跨域配置

  • 安装 django-cors-headers
 pip install django-cors-headers
  • 添加到已安装的应用程序中
INSTALLED_APPS  =(
     ... 
    'corsheaders ',
     ... 
)
  • 添加中间件类来收听响应
MIDDLEWARE  = [
    ... 
    # 跨域请求中间件
    'corsheaders.middleware.CorsMiddleware''django.middleware.common.CommonMiddleware',
     ... 
]
注意:要放在中间件(common.CommonMiddleware)的上面,涉及到请求响应的顺序问题
  • 在 settings.py 的任意位置 添加

CORS_ORIGIN_ALLOW_ALL = True

参考链接