【发布时间】:2018-06-27 05:46:35
【问题描述】:
我在两台机器上有两个应用程序。
- 使用 Django 的后端应用程序(例如 123.431.234.123:8080)
- 使用 Angular 的前端应用(例如 123.431.234.124:4200)
现在我正在尝试从角度发布请求
this.http.post<any>('http://123.431.234.123:8080/login/', { username: username, password: password })
我在浏览器上遇到错误:
跨域请求被阻止:同源策略不允许读取位于http://123.431.234.123:8080/login/ 的远程资源。 (原因:CORS 标头“Access-Control-Allow-Origin”缺失)。
当我在我的 ubuntu 机器上尝试使用 curl 命令时,我能够成功获得响应。
curl -d '{"username":"admin" ,"password":"carpediem"}' -H "Content-Type: application/json" http://123.431.234.123:8080/login/
我尝试关注许多链接并将我的 django setting.py 文件设置为
并按照以下步骤进行配置
pip install django-cors-headers
添加到已安装的应用中
INSTALLED_APPS = (
...
'corsheaders',
...
) 添加中间件
中间件 = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
CORS_ORIGIN_ALLOW_ALL=True
在所有更改之后,我仍然面临同样的问题。这可能是重复的问题,但请帮我解决它。
我正在使用 Mozila firefox,我需要在浏览器或任何其他设置中进行任何更改吗?
【问题讨论】:
-
您是否尝试在本地使用 API?
-
不,它在不同的机器上。