DRF跨域问题

Posted mxsf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DRF跨域问题相关的知识,希望对你有一定的参考价值。

一、安装模块

 pip install django-cors-headers

django-cors-headers 使用说明:https://github.com/ottoyiu/django-cors-headers

二、添加到INSTALL_APPS中

INSTALLED_APPS = (
    ...
    coreschema,
 ... )

三、添加中间件

下面添加中间件的说明:

CorsMiddleware should be placed as high as possible, especially before any middleware that can generate responses such as Django‘s CommonMiddleware or Whitenoise‘s WhiteNoiseMiddleware. If it is not before, it will not be able to add the CORS headers to these responses.

Also if you are using CORS_REPLACE_HTTPS_REFERER it should be placed before Django‘s CsrfViewMiddleware (see more below).

意思就是 要放的尽可能靠前,必须在CsrfViewMiddleware之前。我们直接放在第一个位置就好了

MIDDLEWARE = [
    ‘corsheaders.middleware.CorsMiddleware‘,
    django.middleware.security.SecurityMiddleware,
    django.contrib.sessions.middleware.SessionMiddleware,
    django.middleware.common.CommonMiddleware,
    django.middleware.csrf.CsrfViewMiddleware,
    django.contrib.auth.middleware.AuthenticationMiddleware,
    django.contrib.messages.middleware.MessageMiddleware,
    django.middleware.clickjacking.XFrameOptionsMiddleware,
]

四、设置为True

CORS_ORIGIN_ALLOW_ALL = True

 

以上是关于DRF跨域问题的主要内容,如果未能解决你的问题,请参考以下文章

00,跨域的问题

跨域访问方法介绍--使用片段识别符传值

Nginx 跨域

是否过滤 Django Rest Framework (DRF) 中的代码示例优化问题

DRF序列化代码

drf实现接口