【问题标题】:Cross-Origin Request Blocked issue using Angular 4 and Django使用 Angular 4 和 Django 的跨域请求被阻止问题
【发布时间】:2018-06-27 05:46:35
【问题描述】:

我在两台机器上有两个应用程序。

  1. 使用 Django 的后端应用程序(例如 123.431.234.123:8080)
  2. 使用 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 文件设置为

link 1

link 2

并按照以下步骤进行配置

pip install django-cors-headers 添加到已安装的应用中

INSTALLED_APPS = (

...
'corsheaders',
...

) 添加中间件

中间件 = [

'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...

]

CORS_ORIGIN_ALLOW_ALL=True

在所有更改之后,我仍然面临同样的问题。这可能是重复的问题,但请帮我解决它。

我正在使用 Mozila firefox,我需要在浏览器或任何其他设置中进行任何更改吗?

【问题讨论】:

  • 您是否尝试在本地使用 API?
  • 不,它在不同的机器上。

标签: django angular


【解决方案1】:

这是由于浏览器安全性所致。浏览器不允许通过另一个 IP 访问您的后端 IP,例如 127.0.0.1 (localhost)

如果您使用的是 Google Chrome,请尝试this extension

【讨论】:

    猜你喜欢
    • 2019-02-22
    • 2018-10-07
    • 2015-02-08
    • 2015-04-24
    • 2023-03-28
    • 2020-08-10
    • 2023-03-21
    • 2016-05-19
    • 1970-01-01
    相关资源
    最近更新 更多