Wagtail、CORS 和 Django-Cors-Headers。如何启用 CORS 以便 AXIOS 可以访问端点
Posted
技术标签:
【中文标题】Wagtail、CORS 和 Django-Cors-Headers。如何启用 CORS 以便 AXIOS 可以访问端点【英文标题】:Wagtail, CORS and Django-Cors-Headers. How to enable CORS so that AXIOS can get to the endpoints 【发布时间】:2019-05-30 14:34:44 【问题描述】:我正在尝试启用 Wagtail API,以便我可以在 Vue 中做一些令人兴奋的事情。但是,我已经按照在 Wagtail 中启用 API 的所有说明进行操作,并且没有提到 CORS。嗯,还不到一个段落。
我在所有项目中都使用 Django-Cors-Headers 并像往常一样进行设置,但由于某种原因,API 仍然不允许访问。
是否有人对如何使用 DJANGO-CORS-HEADERS 允许 CORS 连接到 Wagtail API 端点有任何建议?
【问题讨论】:
【参考方案1】:This 可能会有所帮助。我不能谈论 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”的站点。也许错字也许是旧语法¯\_(ツ)_/¯
(* 可能有轻微的安全风险,但我只在开发中需要它,所以我并没有过多考虑)
【讨论】:
这真的很有帮助。谢谢。以上是关于Wagtail、CORS 和 Django-Cors-Headers。如何启用 CORS 以便 AXIOS 可以访问端点的主要内容,如果未能解决你的问题,请参考以下文章
Wagtail:如何在管理员中设置计算字段(@property)标题