【问题标题】:Cross-Origin Request Blocked (Ionic + Django)跨域请求被阻止(Ionic + Django)
【发布时间】:2023-03-21 14:03:01
【问题描述】:

我正在使用 ionic 框架构建一个应用程序,后端用 Django 编写。

当我尝试进行测试时,我收到以下错误消息

跨域请求被阻止:同源策略不允许读取 http://localhost:8000/api/ 的远程资源。 (原因:CORS 标头“Access-Control-Allow-Origin”缺失)。

我看到了一些文档,有人提到我需要在 ionic.config.json 下添加代理,所以我添加了看起来像这样的代理

"proxies":[
    {
      "path":"/api",
      "proxyUrl": "http://localhost:8000/api"
    }   
]

提前致谢

【问题讨论】:

  • 您需要安装django-cors-headers 包,用于处理跨域资源共享所需的服务器头
  • 当我添加这个包时,我收到了这个错误。禁止(未设置 CSRF cookie。)
  • 将此行添加到您的设置中CORS_ORIGIN_ALLOW_ALL = True,同时确保您已尽可能高地添加CorsMiddleware,尤其是在任何可以生成响应的中间件之前,例如Django的CommonMiddleware

标签: django angular ionic-framework


【解决方案1】:

你可以使用这个库

pip install django-cors-headers
INSTALLED_APPS = (
    ...
    'corsheaders',
    ...
)

MIDDLEWARE = [  # Or MIDDLEWARE_CLASSES on Django < 1.10
    ...
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    ...
]

【讨论】:

  • 当我添加这个包时,我收到了这个错误。禁止(未设置 CSRF cookie。)
猜你喜欢
  • 2015-02-08
  • 1970-01-01
  • 2020-08-10
  • 2021-06-26
  • 2014-10-13
  • 2019-11-04
  • 2017-02-06
相关资源
最近更新 更多