跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域。
为了能够使前端能够访问到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:
总共一个导包三处配置
当然这只是跨域,还是要结合数据类型来使用,希望对小伙伴能有所帮助。