关于Django2.0跨域问题

2022-08-08 08:43:10 浏览数 (1)

  首先,明确一个问题,就是跨域需要服务端支持才行,而不是靠前端修改代码可以解决的,无论你用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才能让服务端支持,所以不能一概而论。

0 人点赞