はじめに
この記事はReact初学者が書いています
間違いがあれば指摘してください
よろしくお願いします。
筆者の環境
Dockerで、ReactとRailsのサーバーを別々で建てている
エラーの発生状況
ReactからRailsのサーバーにAPIリクエストを送るときに以下のエラーが発生
とりあえずエラー名で検索してみるとOracleのソケットのエラーコードが載っているサイトを発見
ECONNREFUSED
ホストがサービスを拒否した。これは、要求されたアドレスにサーバープロセスが存在しない場合に発生する
つまり、サーバーが見つけられてないっぽい?
解決法
インフラにDockerを使用しているのでコンテナのネットワークがどうなっているのかを調べる
Dockerの公式リファレンスに書いてあったが、コンテナ内から他のコンテナにリクエストを送りたいときは
http://宛先サーバー名:宛先サーバーの内側のポート
となるらしい。
原因
自分の場合はAPIのチェックをブラウザで行っていたため、コンテナ外から
http://localhost:4000(宛先サーバーの外側のポート)
で接続していて、これを流用していたから繋がらなかった。
別のエラーが出た場合
自分の環境ではすでに設定が終わっていたが、
Cross-Originの設定も必要になるので
まだやってない人はそれをする必要がある。