2017-05-13 86 views
0

我是使用Django的新手,所以对某个人来说这可能是一件容易的事情......我希望如此!Django REST API连接问题

我已经建立了一个Django REST API,按照这里找到的教程:http://www.django-rest-framework.org/。当我运行服务器时,我可以使用Browsable API并通过API进行导航,如特定链接:http://127.0.0.1:8000/snippets/。我也可以通过Postman GET请求访问此URL并检索关联的片段。

现在,这里是我的问题:

我创建了一个阵营本地应用程序,其中我从这个URL(我的蟒蛇服务器是否正在运行)获取数据。我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) 

我可以刷新浏览器或邮差链接,没有任何问题,但在取......我无力取得任何成功,并且只能回到上面的模糊错误信息。

我认为它可能必须与CSRF或CORS ...但我在Django中都具有这些设置(并且错误消息不会说那些,所以我不认为这是它)。

任何建议/想法?

谢谢!

+0

它可能是一个CORS问题,你确定JS发送'Access-Control-Allow-Origin:*'并且ReactApp的IP地址在django设置中被列入白名单? –

+0

我不能说CORS不是100%的问题,但我已经安装了pip install django-cors-headers,添加了已安装的应用程序,添加了中间件并设置了CORS_ORIGIN_ALLOW_ALL = True。我应该尝试Access-Control-Allow-Origin:*其他地方? –

+0

嗯,应该是吧。这是一个完整的堆栈跟踪? –

回答

0

不是说任何人都可以从我的文章中具体了解这一点......但我想发布这个答案,无论是否有人可能有同样的问题。

我一直在通过Expo开发React Native应用程序,并将其部署到我的物理电话而不是iOS/Android模拟器。

既然如此,显然我的http://127.0.0.1:8000http://localhost:etc不会在我的手机上工作!然后,我切换到使用iOS模拟器,它的第一次尝试没有问题。