Django-添加到服务器标头(CORS)

Posted

技术标签:

【中文标题】Django-添加到服务器标头(CORS)【英文标题】:Django- adding to server header (CORS) 【发布时间】:2016-02-15 19:31:06 【问题描述】:

我收到 CORS 错误,因为我的浏览器不喜欢 Ajax 的 localhost 域。

我相信我需要将这些添加到服务器标头中,以便我可以在本地进行测试。

'Access-Control-Allow-Origin' : '*',
'Access-Control-Allow-Methods' : 'POST, GET, OPTIONS, PUT',
'Content-Type': 'application/json',

我如何在 Django 中编写它,它属于什么文件 in-middleware.py?

【问题讨论】:

看看github.com/ottoyiu/django-cors-headers 【参考方案1】:

不需要 Pip 安装。首先,将此行添加到您的 setting.py

Settings.py-------------

MIDDLEWARE_CLASSES = (
...
    'myapp.middleware.CorsMiddleware',
)

然后在“myapp”文件夹中创建一个名为“middleware.py”的文件

“/myapp”目录中的Middleware.py-----

class CorsMiddleware(object):

    def process_response(self, request, response):
        response['Access-Control-Allow-Origin'] = '*'
        response['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS, PUT'
        #response['Content-Type'] = 'application/json'
        #response['Accept'] = 'application/json'
        return response

【讨论】:

以上是关于Django-添加到服务器标头(CORS)的主要内容,如果未能解决你的问题,请参考以下文章

如何将 CORS 标头添加到 401/403 响应?

如何将 CORS 标头添加到 Jersey 2 中灰熊服务器的 StaticHttpHandler 提供的响应?

创建 React App 添加 CORS 标头

将 CORS 添加到 ajax 标头时的 a.toLowerCase

在 IE10 的 AJAX CORS 请求中添加自定义标头时,CORS 请求中止

在 Angular 6 中将 CORS 标头添加到响应中