15

Android4.1のAccess-Control-Allow-Originに問題があります

私のアプリケーションには、Webサービスからデータをフェッチするために使用していたローカルHTMLファイルとJavascriptがいくつかあります。Android 4.1を試すまでは問題はありませんでしたが、Android 4.1を試した後、このエラーが発生しました。

私はたくさんの文書を読みましたが、この問題を解決する方法を見つけることができませんでした。

4

3 に答える 3

52

あなたは次のようなことをする必要があります

if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) 
  wv.getSettings().setAllowUniversalAccessFromFileURLs(true);
于 2012-07-16T19:20:16.580 に答える
8

@私は開発者であり、同じ問題に直面している他の人たちです。

Slushisソリューションは正常に機能します。ただし、API11未満のシステムに対してコンパイルおよびサポートする場合は、以下を追加する必要があります。

if (Build.VERSION.SDK_INT >= 16) {  
    Class<?> clazz = webView.getSettings().getClass();
    Method method = clazz.getMethod("setAllowUniversalAccessFromFileURLs", boolean.class);
    if (method != null) {
        method.invoke(webView.getSettings(), true);
    }
}

これにより、実行時にメソッドが読み込まれて呼び出されるため、Android2.3.3などでコンパイルできます。

于 2013-02-27T13:12:30.523 に答える
0

あなたのウェブサービスは同じドメインからホストしていますか?別のドメインのサービスにajax呼び出しを行っているときに、このエラーが発生していました。Webサービスを制御できる場合は、ヘッダーにAccess-Control-Allow-Origin:*を設定できます(ただし、この方法は安全な方法ではありません)。

于 2012-07-03T21:20:28.827 に答える