weblion303.net/2377
アプリ側から通信する際も`cors`って関係してくるの?
ずっとネットワークエラー🤔

基本的にCORSはブラウザの自主規制だったはずと思います。
react-nativeは良く知らないですが、webに近い技術だとあからさまにブラウザじゃなくても自主規制が実装されてる可能性はありそうですね。
ElectronなんかもWebViewが挟まってCORSの自主規制してるみたいですし。

フォロー

@kanonji なるほど、この場合はアプリを立ち上げてるシュミレータのドメインを許可するんですかね🤔 実際のアプリはドメインがないだろうし、謎が深まります。そしてgoでcorsを不勉強のため面倒で、絶望してます😵

Electronでもアプリちゃんと作った事は無いので想像ですが、WebViewが挟まる場合は多分Electronが内部でサーバー立ててlocalhostへのアクセスになったりするんですかね。もしそうならAllowedOriginsにはlocalhostが入りそうですが、そんな作りだとポート被りやすいし違うかもですね・・・

Golangだとcorsはミドルウェアを使うと思いますが、どの辺が面倒ですか?
正しく設定したつもりなのに、通信が通らない時は、原因も探りにくくて大変だった記憶はあります。

@kanonji 色々と調べてみました。
試してはいないですが、corsではなくwindwsの問題な気がしてきました。goでサーバーを立ち上げ、そこにシミュレーターで立ち上げたアプリ側からアクセスしているのですが、そもそも別端末からこのgoサーバーにアクセスできないんじゃないかという風に予測しています。

goで立ち上げたサーバー:localhost:3000
スマホから接続:localhost:3000/api/endpoint

このlocalhost:3000に別端末からアクセスできないのが原因で、corsは関係ない🤔

すみません...、面倒なのはいったん完成したであろうAPIをまた改修するのが面倒だなと思っただけです。。。

なるほど。もし書いてある通りのURLでアクセスしてるなら、スマートフォンにとってのlocalhostはスマートフォン自身なので、Windows上のGolangサーバーにアクセスはしないですね。
Windowsとスマートフォンを同じWiFiに繋いでて、URLが実際ははローカルIPアドレスになってるとかなら繋がりそうですけど、PC外からポート3000へのアクセスがファイアウォールとかで閉じられてるとか、もしかしたらあるんでしょうかね?

自分はスマートフォン向けのあんまり作ってなくて、スマートフォンは動作確認も開発PCで完結しなくて大変そうですね・・

@kanonji そうなんですよね、うっかりしてました。
IPにしても繋がらず、おっしゃる通り、どうやらファイアウォールで遮断されているそうでした。

僕も初めてなので、わからないことだらけです...😭

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。