1

jQueryMobile を使用しています。http リクエストを作成したいのですが、リクエストが成功することはほぼわかっているので、答えは必要ありません。問題: リクエストが外部サーバーを対象としているため、JSONP しか使用できませんでした。しかし、サーバーはそれをサポートしておらず、プレーンテキストまたは有効な xml を返すだけです (リクエスト URL で変更できます)。エラーを発生させずにこのリクエストを行うにはどうすればよいですか?

ajax で jsonp を使用すると、構文エラーがあるというエラーが表示されます。リクエストを通常の ajax/text/xml リクエストとして送信するだけの場合、サーバーはまったく接続されません。SMS ゲートウェイに接続していて、SMS を受信しないので、これはわかっています。

私の回避策は現在、その URL の src と表示のスタイルを持つ新しい iframe を挿入することです: none; Firefox では正常に動作しますが、これが (唯一の) 解決策であるとは思えません。

どのようなソリューションがありますか?

4

1 に答える 1

2

あなたはすでに最良の答えを実装していると思います。制約について見ていきましょう。

  1. これは、制御していないサーバーへのクロスオリジン リクエストであるため、同一オリジンをチェックするさまざまな HTML5、Flash、または Java API を使用することはできません。

  2. そのため、リモート リソースをロードする DOM 要素を挿入する必要があります。

  3. <script>コンテンツ タイプが間違っているため、これではうまくいかないと判断しました。

  4. <img>同様に、 、<embed>、またはを使用することはできません<object>。それらが機能したとしても、それらは邪悪なハックな選択になります。

<iframe>ブラウザからリクエストしたい場合は、残された唯一の選択肢だと思います。

もう 1 つの選択肢は、リモート API にプロキシする独自のサーバーに API を実装することです。次に、XHR を使用してリクエストを行い、必要に応じてクライアントで完全なエラー チェックを行うことができます。

于 2012-11-11T20:00:57.727 に答える