【问题标题】:Django CORS fails with post request from mobile appDjango CORS 因来自移动应用程序的发布请求而失败
【发布时间】:2018-03-03 19:01:07
【问题描述】:
  • 我将Angular 4 / Ionic 3 用于前端/移动应用程序。
  • 我正在使用Django 1.11 for the backend。

当我尝试从浏览器发送请求时:
headers.append('Content-Type', 'application/json');
headers.append('Access-Control-Allow-Origin', '*');
this.http.post('http://0.0.0.0:8000/en/accounts/user/', {} , {headers:headers})

在我的 Django 应用程序中,我使用了 django-cors-headers 并设置:
- CORS_ORIGIN_ALLOW_ALL = True
- CORS_ALLOW_CREDENTIALS = True

从浏览器我得到了预期的响应,但是从移动应用程序测试时,CORS 请求似乎没有通过(返回 Response with status: 0 for URL: null)

对此有何建议?

【问题讨论】:

  • 您在手机上使用的网址如何?
  • 看起来您正在开发服务器上运行浏览器。我可以想象您的手机无法访问您的开发服务器。您的移动版本中使用的 URL 是否可访问?如果您的应用程序位于可访问的位置,但仍然无法通过有效的 url 访问 API,那么您可能需要检查服务器是否允许 OPTIONS 标头(预检请求)。默认情况下,某些工具可能没有 OPTIONS 标头。 link
  • Django 服务器在 0.0.0.0:8000 启动 Ionic 在 0.0.0.0:8100 启动,如果这是你的要求?

标签: python django angular django-cors-headers


【解决方案1】:

伙计们,我想今天我很笨,或者我不知道是星期五,但问题是可能是 Mariusz 和 Nrzonline 建议的网址。

我变了:
this.http.post('http://0.0.0.0:8000/en/accounts/user/', {} , 到 this.http.post('http://192.168.178.2:8000/en/accounts/user/', {} ,

现在它就像魅力一样。

【讨论】:

    猜你喜欢
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 2020-08-15
    • 1970-01-01
    • 2014-07-21
    • 2011-10-02
    相关资源
    最近更新 更多