4

PhoneGap を使用してモバイル アプリを構築していますが、サービスの RESTful API に適合させる必要があります。

基本的に、リソースを取得/削除/更新/チェック/(非べき等アクション)したい場合は、jQuery の ajax メソッドを介して GET/DELETE/PUT/HEAD/POST リクエストをhttp://example.com/resource/:idに発行します。サポートされています。これは私が問題に直面しているところです。

PhoneGap はファイルを保持し、ローカルで提供するため (例: file://file.html)、ajax 呼び出しでクロスドメインの問題が発生します。さらに、JSONP は基本的にドキュメントにスクリプトを挿入していることを理解しているため、リクエストの 1 つの方法に対するソリューションです。

ここにいくつかのアイデアがあります:

  1. JSON または JSONP のデータ型を要求する代わりに、HTML の要求が機能し、ドキュメントの応答を JSON オブジェクトに解析できますか?
  2. リクエストごとに、このポスターのようなページで iFrame を作成および削除するJSONP および jQuery で PUT/POST/DELETE を使用する(汚くてエレガントに感じない)
  3. これを許可するリクエストとともに送信される、ユーザー名/パスワードまたはトークンを含む何らかの形式のサーバー側 CORS (私は最初に iOS で展開しています)
  4. 私が創造的に指を置くことができない他の戦術。

この問題に対する最もエレガントな解決策は何ですか? プラグインは大歓迎です。

TL;DR: 異なる HTTP メソッドの $.ajax リクエストにクロスドメイン サポートを追加するにはどうすればよいですか?

4

1 に答える 1

5

PhoneGap プロパティでサーバーをホワイトリストに登録する必要があります。デフォルトでは、セキュリティ上の問題を防ぐために、PhoneGap は外部サイトへのアクセスを制限しています。PhoneGap には、標準の http ホスト サイトのようなクロスドメインの問題はありません。詳細については、こちらをお読みください: http://docs.phonegap.com/en/2.1.0/guide_whitelist_index.md.html#Domain%20Whitelist%20Guide

于 2012-10-25T17:21:11.393 に答える