【发布时间】:2018-01-16 07:29:59
【问题描述】:
我目前使用 Angular4 和 django-nonrel 作为后端。一开始就遇到了 CORS 错误并安装了 django-cors-headers 来为 django 提供对 CORS 的支持。我必须安装 1.1.0 版本,因为 django-nonrel 支持 直到 django 1.6.11。到目前为止,几周以来一切都运行良好,但今天我关闭笔记本电脑后,我又开始收到 CORS 错误。
姜戈
ConnectionFailure:[Errno 10061] 无法建立连接,因为 目标机器主动拒绝
角度
XMLHttpRequest 无法加载 http://127.0.0.1:8000/pgla/project_list。不 请求中存在“Access-Control-Allow-Origin”标头 资源。因此不允许使用来源“http://127.0.0.1:4200” 使用权。响应的 HTTP 状态代码为 500
我验证了 django-cors-headers 模块的安装说明,一切都是正确的。这是我的设置:
MIDDLEWARE_CLASSES = (
...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
)
CORS_ORIGIN_ALLOW_ALL = True
这里是 Angular 的监听器参数:
new Headers({'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'}),
【问题讨论】:
-
错误消息中提到的 500 状态码表示
http://127.0.0.1:8000服务器上存在一些服务器端故障。因此,您需要进入并查看该服务器上的服务器日志,以了解有关该故障原因的记录信息。浏览器显示 CORS 错误消息的事实只是偶然的——这只是因为服务器没有将 Access-Control-Allow-Origin 响应标头添加到 500 响应中。真正的问题是您需要修复导致 500 的问题。一旦你解决了这个问题,CORS 错误也会消失