关于Django2.0跨域问题

  首先,明确一个问题,就是跨域需要服务端支持才行,而不是靠前端修改代码可以解决的,无论你用jquery axios fetch都是如此。

  这里介绍一下,如果使用的是Django2.0本身作为web服务端,该如何处理跨域请求问题。

  1 安装插件

  pip install django-cors-headers

  2 编辑配置文件(settings.py)

  INSTALLED_APPS = [
    ''''''''''''
    ''''''''''''
    ''''''''''''
    ''''''''''''
    ''''''''''''
    'corsheaders',
]

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',
]


CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True



至此,就可以解决跨域异步请求的问题了,服务端的不同配置也不一样,比如使用nginx服务就需要单独配置nginx才能让服务端支持,所以不能一概而论。