django配置跨域

什么是跨域?

跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域。

为了能够使前端能够访问到Django脚本,我们就需要跨域了。这里主要说明怎么从django跨域。

首先我们得先配置一个跨域所需要的包
django-cors-headers

其次就需要我们去settings里边设置一些跨域所需要的配置了
在INSTALLED_APPS里边将下载好的跨域包导入进来
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'appname',    #子APP
    'corsheaders'   #设置跨域

然后再MIDDLEWARE第三行设置跨域
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    
    'corsheaders.middleware.CorsMiddleware',     #设置跨域
    
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

可能有小伙伴说这一行这么长记不住教大家一个好几的方法,导入一个包单词就全出来了
from corsheaders.middleware import CorsMiddleware
希望能帮助那些记不住的小伙伴

#设置跨域
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
记不住的小伙伴下面这两条配置也是能够找到的,点住CorsMiddleware使用ltrl+左击 进入下一层
在CorsMiddleware类里面下边有一个process_response方法可以找到
if conf.CORS_ALLOW_CREDENTIALS:

总共一个导包三处配置

当然这只是跨域,还是要结合数据类型来使用,希望对小伙伴能有所帮助。

你可能感兴趣的:(Djamgo)