2017-05-13 19 views
0

私はDjangoを使用するのは新しいですから、これは誰かにとっては簡単なことかもしれません...私はそう望みます!Django REST API接続の問題

私はここにあるチュートリアルの後にDjango REST APIを構築しました:http://www.django-rest-framework.org/。サーバーを実行すると、Browsable APIを使用して、具体的にこのリンク(http://127.0.0.1:8000/snippets/など)を介してナビゲートできます。私は、Postman GETリクエストを通じてこのURLにアクセスし、関連するスニペットを取得することもできます。

は今、ここに私の問題です:

私は(私のpythonサーバーが実行されている)、この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インストールしてdjango-cors-headersをインストールし、インストールされたアプリケーションを追加し、ミドルウェアを追加し、CORS_ORIGIN_ALLOW_ALL = Trueに設定しました。私はAccess Control-Allow-Originを試すべきですか?*別の場所ですか? –

+0

hm、そうでなければなりません。これは完全なスタックトレースですか? –

答えて

0

誰もが私の投稿からこれを明確に知っている可能性はありません...しかし、私はこの同じ問題を抱えているかもしれない人に関係なく、この回答を投稿したいと思います。

私は、ExpoでReact Nativeアプリケーションを開発し、iOS/Androidシミュレータではなく物理的な携帯電話に展開しています。

この場合、明らかに私のhttp://127.0.0.1:8000またはhttp://localhost:etcは私の電話からは機能しません!私はその後、iOSシミュレータを使用するように切り替え、問題なく最初の試行を行いました。