2016-09-06 10 views
3

私はwww.example.comで動作しているウェブサイトを持っています。ページがロードされると、JavaScriptファイルがフェッチされ、xyz.subdomain.example.comへのAjax呼び出しが行われます。Ajaxコールに失敗しましたが、特定の携帯電話会社でのみ発生します

すべては、私がテストしたすべてのプラットフォーム/ブラウザで動作します。 Androidの携帯電話でこれを実行すると、(使用されているブラウザに関係なく、私はWiFiを有効にすると動作しますが)何かが失敗します。しかし、私の妻の携帯電話には、別の通信事業者に接続するものが正しく機能します(はい、2社あります)。

何かが失敗した場合、私は受け取ったステータスは0であり、追加テキストはありません。私の直感は、これはCORSの問題かもしれないが、誰が電話をするのだろうか?私はブラウザがそうであると思うだろう、私はOSを信じるだろうが、私はキャリアがこれをやっていることを受け入れることができない。

何が起こっているのかについて別の説明がありますか?どのようにこの問題を解決するためのアイデア?

EDIT

私は進歩の少しを作ったが、問題を解決していません。助けてくれた皆様に感謝します。

私のオリジナルの説明は少し単純化されています。私は実際にrandom.xyz.subdomain.example.comに行って、DNSサーバー(私が制御する)で何が起こっているのかを見ています。

とにかく、私はtermuxをインストールすることにしました。ここに私が見つけたものがあります:

dig random.xyz.subdomain.example.com 

正しく解決します。 FWIW、Google DNSがここで使用されています。

curl random.xyz.subdomain.example.com 

受信したエラー:カール:(6)ホストを解決できませんでしたrandom.xyz.subdomain.example.com

OK、それは予想外でした。ドメインはdigで解決されますが、カールには問題があります。この時点で

私は電話でのWi-Fiをオンに

curl random.xyz.subdomain.example.com 

データの束を正しく返されます。

これはちょっと変わったようです。私はそれはキャリアが問題ではないことを意味すると思う、電話はある。または、具体的には、WiFiが美しく動作するため、携帯電話内のモバイルコード。これは正しいですか?他に何をテストすべきですか?ランニング

そして、それは何を意味している場合、携帯電話はサムスンギャラクシーグランドプライム(SM-G530W)であるアンドロイド5.1.1

EDIT 2

私は掘る間で異なる行動に悩まされ、カールし、それを調べ始めました。私はいくつかの人々がこの問題を参照しているのを見ましたが、完全には解決しません。また、私の携帯電話で見つかった動作も、AWS Linuxの在庫インスタンスから複製することができます。

また、random.xyz.subdomain.example.comのゾーンを制御するネームサーバーの名前を解決するプロセスが非常に複雑であることもわかりました。 3つの異なる企業によって管理されるリソースを通じて、いくつかのCNAMEに従っていました。このプロセス全体は機能しますが、明らかに特定のインスタンスではありません。

とにかく、私はこのネームサーバーの名前の解決をずっと簡単にしました。私は、究極の問題は、Linuxネットワーキングの中で、構文解析が適切でないか、まれに起こることのない状況に対処していなかった、より古くてバグのあるライブラリだったと思います。

+1

キャリアのDNS問題かもしれません。 Chromeを使用してデバッグしようとすると、アンドロイドがやっているリクエストとサーバーから返されたリクエストを確認できます。 – Dekel

+0

Androidの携帯電話を使用している場合は、PCのChromeに接続して、ネットワークトラフィックなどのページをデバッグすることができます。これは、少なくともリクエストとレスポンスの表示に関する手掛かりを提供する可能性があります。 – Phil

答えて

1

xyz.subdomain.example.comに「テスト」ページを置き、同じブラウザを使用して問題のある電話に直接アクセスしてください。

テストページにアクセスできない場合は、プロバイダに連絡してください(テストページがあります)。

ブラウザでテストページにアクセスできますが、ajaxコールではアクセスできない場合は、非常に奇妙なことが起こっています。

私が考えることができる唯一の他のことは、電話自体にajaxリクエストURLのpathのためにリクエストを無効にする疑惑コードがあることです。私は以前これを見てきました。デバッグするのは難しいことでした。この不吉なアイデアをテストするには、ajaxが要求したファイルの名前を変更してみてください。

を編集してください:Philが以下に述べたように。あなたの妻とSIMを交換して、それが通信事業者か電話の問題かどうかを確認することは良い考えです。

+0

OPは動作しますあなたの最後の段落が適用されるとは思わないので、私はWiFiの上で – Phil

+1

@フィールあなたは携帯電話のコーダーを信頼することはできません。非可聴周波ネットワーク接続の下でのみ "駄洒落"が起こる可能性があります。 – Tigger

+1

良い点。 OPは彼の妻とSIMを交換することによっていくつかの分離テストを行うことができます。問題は携帯電話か通信事業者のどちらかに絞り込みます。 – Phil

4

Androidでこれをデバッグする方法はたくさんありますが、Chromeのリモートデバッガを問題の電話に接続し、コンソールとネットワークタブで詳細を確認するのが最も簡単な方法でしょう。

既知の「機能」に該当する場合は、isp/cellプロバイダーの携帯電話モデルをGoogleに問い合わせてください。

サーバの視点からリモートIPを確認することも、「私のIPは何ですか」、「私のユーザエージェントは何ですか?」と尋ねることもできます。セキュリティ/プライバシー/その他の良いまたは悪い(時にはシステム)アプリがhttpトラフィックを乗っ取っていることが起こるかもしれません。

ネットワークに問題があり、コンソールに精通している場合は、termuxのようなアプリを入手すると多くの助けになるかもしれません。 curl、ping、tracerouteなどの標準ツールは根本的な原因を特定するのに役立ちます。

+0

termuxは良い考えでした。私はそれを試して、いくつかの奇妙なことが起こった元の投稿の編集として文書化されています。 –

関連する問題