首页 > 解决方案 > Wagtail、CORS 和 Django-Cors-Headers。如何启用 CORS 以便 AXIOS 可以访问端点

问题描述

我正在尝试启用 Wagtail API,以便我可以在 Vue 中做一些令人兴奋的事情。但是,我已经按照在 Wagtail 中启用 API 的所有说明进行操作,并且没有提到 CORS。好吧,它不到一个段落。

我在所有项目中都使用 Django-Cors-Headers 并像往常一样进行设置,但由于某种原因,API 仍然不允许访问。

有人对如何使用 DJANGO-CORS-HEADERS 允许 CORS 连接到 Wagtail API 端点有任何建议吗?

标签: djangovue.jsaxioswagtaildjango-cors-headers

解决方案


可能会有所帮助。我不能谈论 wagtail,因为我没有在这个特定的项目中使用它,但是借助它并查看 django 2 中间件的语法,我想出了这个:

class CorsMiddleware(object):
    def __init__(self,get_response):
        self.get_response=get_response

    def __call__(self, request):
        print('test')
        response=self.get_response(request)
        response["Access-Control-Allow-Origin"] = "*"
        return response 

还要确保在将中间件插入 settings.py 时,包括文件名以及模块名称和组件名称,即“AppName.FileName.CorsMiddleware”,而不是链接站点上建议的内容'AppName.CorsMiddleware'。也许错字也许是旧语法¯\_(ツ)_/¯

(* 可能有轻微的安全风险,但我只在开发中需要它,所以我并没有过多考虑它)


推荐阅读