1

私は JQuery Mobile アプリを持っています。このアプリは、リモート Web サービスにアクセスする必要があります。ローカル ファイル システムからアプリを実行すると、アプリは正常に読み込まれます。しかし、ボタンをクリックすると、Web サービスと対話しようとします。Web サービスにアクセスしようとすると、コンソールに次のようなエラーが表示されます。

XMLHttpRequest cannot load https://www.mydomain.com/myService/myAction. Origin null is not allowed by Access-Control-Allow-Origin

次のコードでサービスをヒットしようとします。

var vm = getParameters();
$.ajax({
  url: https://www.mydomain.com/myService/myAction,
  type: "POST",
  data: JSON.stringify(vm),
  contentType: "application/json",
  success: action_Succeeded,
  error: action_Failed
});

私は何を間違っていますか?この投稿のすべてを試してみましたが、運が悪かった: XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin

私のアプリは、Visual Studio 経由で実行すると動作します。私の推測では、その時点で Web サーバーのコンテキストで実行されているということです。ただし、これを PhoneGap 経由でデプロイしたいと考えています。そのため、Web サーバーのコンテキスト内で実行することは問題外です。そのため、ローカル ファイル システムを介して実行し、すべてが機能していれば問題ないと考えました。私は何を間違っていますか?

どうもありがとう!

4

1 に答える 1

1

config.xml ファイルを確認し (Phonegap Build サービスを使用している場合は、iOS の場合は .plist ファイル、Android の場合は AndroidManifest.xml を確認します)、次の行を追加します。

<access origin="*" />

これが機能する場合は、次のようなより制限的なアクセス ルールを設定してみてください。

<access origin="https://mydomain.com" subdomains="true" />

サーバー側では、次の http ヘッダーを返す必要があります。

Access-Control-Allow-Origin: *
于 2012-05-25T19:54:56.123 に答える