为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Django REST Framework上启用CORS

/ 猿问

如何在Django REST Framework上启用CORS

叮当猫咪 2019-10-11 14:04:48

如何在Django REST框架上启用CORS?该参考没有太大帮助,它说我可以通过中间件来完成,但是我该怎么做呢?


查看完整描述

3 回答

?
精慕HU

您在问题中引用的链接建议使用django-cors-headers,其文档说要安装该库


pip install django-cors-headers

然后将其添加到已安装的应用程序中:


INSTALLED_APPS = (

    ...

    'corsheaders',

    ...

)

您还需要添加一个中间件类来侦听响应:


MIDDLEWARE_CLASSES = (

    ...

    'corsheaders.middleware.CorsMiddleware',

    'django.middleware.common.CommonMiddleware',

    ...

)

您可能还希望浏览其文档的配置部分,特别注意各种CORS_ORIGIN_设置。


查看完整回答
反对 回复 2019-10-11
?
慕盖茨4494581

pip install django-cors-headers

然后将其添加到已安装的应用程序中:


INSTALLED_APPS = (

    ...

    'corsheaders',

    ...

)

您还需要添加一个中间件类来侦听响应:


MIDDLEWARE_CLASSES = (

    ...

    'corsheaders.middleware.CorsMiddleware',  

    'django.middleware.common.CommonMiddleware',  

    ...

)


CORS_ORIGIN_ALLOW_ALL = True

CORS_ALLOW_CREDENTIALS = True

CORS_ORIGIN_WHITELIST = [

    'http://localhost:3030',

]

CORS_ORIGIN_REGEX_WHITELIST = [

    'http://localhost:3030',

]

更多详细信息:https : //github.com/ottoyiu/django-cors-headers/#configuration


阅读官方文档可以解决几乎所有问题


查看完整回答
反对 回复 2019-10-11
?
MMMHUHU

即使知道最佳选择是使用经过测试的包方法,您也可以使用自定义中间件来进行操作django-cors-headers。话虽如此,以下是解决方案:


创建以下结构和文件:


- myapp/middleware/__init__.py


from corsMiddleware import corsMiddleware

- myapp/middleware/corsMiddleware.py


class corsMiddleware(object):

    def process_response(self, req, resp):

        resp["Access-Control-Allow-Origin"] = "*"

        return resp

添加到settings.py标记的行:


MIDDLEWARE_CLASSES = (

    "django.contrib.sessions.middleware.SessionMiddleware",

    "django.middleware.common.CommonMiddleware",

    "django.middleware.csrf.CsrfViewMiddleware",


    # Now we add here our custom middleware

     'app_name.middleware.corsMiddleware' <---- this line

)


查看完整回答
反对 回复 2019-10-11

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信