2017-05-13 90 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模擬器,它的第一次嘗試沒有問題。