【问题标题】:Django REST API connection issuesDjango REST API 连接问题
【发布时间】:2017-10-12 10:37:40
【问题描述】:

我是使用 Django 的新手,所以这对某些人来说可能是一件容易的事......我希望如此!

我按照此处的教程构建了一个 Django REST API:http://www.django-rest-framework.org/。当我运行服务器时,我可以使用 Browsable API 并通过 API 导航,例如这个链接:http://127.0.0.1:8000/snippets/。我还可以通过 Postman GET 请求访问此 URL 并检索相关的 Snippets。

现在,这是我的问题:

我创建了一个 React Native 应用程序,我从这个 URL 获取数据(我的 python 服务器正在运行)。我 console.log 对此的响应,我不断收到以下错误:

Error: Network Error
    at createError (createError.js:15)
    at XMLHttpRequest.handleError (xhr.js:87)
    at XMLHttpRequest.dispatchEvent (event-target.js:172)
    at XMLHttpRequest.setReadyState (XMLHttpRequest.js:478)
    at XMLHttpRequest.__didCompleteResponse (XMLHttpRequest.js:324)
    at XMLHttpRequest.js:418
    at RCTDeviceEventEmitter.emit (EventEmitter.js:179)
    at MessageQueue.__callFunction (MessageQueue.js:236)
    at MessageQueue.js:108
    at guard (MessageQueue.js:46)

我可以在浏览器或 Postman 中刷新链接并且没有任何问题,但在 fetch 中...我无法取得任何成功,并且只能返回上面模糊的错误消息。

我认为它可能必须与 CSRF 或 CORS 一起使用...但我在 Django 中的这两个设置都可以(并且错误消息没有说这些,所以我不认为是这样)。

有什么建议/想法吗?

谢谢!

【问题讨论】:

  • 可能是 CORS 问题,你确定 JS 发送了Access-Control-Allow-Origin: * 并且 ReactApp 的 IP 地址在 django 设置中被列入白名单吗?
  • 我不能说 CORS 不是 100% 的问题,但我已经安装了 pip install django-cors-headers,添加了已安装的应用程序,添加了中间件并设置了 CORS_ORIGIN_ALLOW_ALL = True。我应该在其他地方尝试 Access-Control-Allow-Origin: * 吗?
  • 嗯,应该就是这样。这是完整的堆栈跟踪吗?
  • 是的,我上面发布的错误是整个 .catch((error) => console.log(error));还有其他想法吗?感谢您的帮助!

标签: python django rest django-rest-framework axios


【解决方案1】:

并不是说任何人都可以从我的帖子中明确知道这一点......但我想发布这个答案,不管可能有同样问题的人。

我一直在通过 Expo 开发 React Native 应用程序,并将其部署到我的实体手机而不是 iOS/Android 模拟器上。

在这种情况下,显然我的http://127.0.0.1:8000http://localhost:etc 无法通过我的手机工作!然后我切换到使用 iOS 模拟器,第一次尝试没有问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 2015-02-06
    • 2017-11-05
    • 2019-11-17
    • 1970-01-01
    • 2011-07-28
    相关资源
    最近更新 更多