Android 4.1でAccess-Control-Allow-Originに問題があります
私のアプリケーションには、Webサービスからデータをフェッチするために使用していたローカルHTMLファイルとJavascriptがいくつかあります。 Android 4.1を試すまでは問題ありませんでしたが、Android 4.1を試した後、このエラーが発生しました。
私はたくさんの文書を読みましたが、この問題を解決する方法を見つけることができませんでした。
あなたは次のようなことをする必要があります
if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN)
wv.getSettings().setAllowUniversalAccessFromFileURLs(true);
@私は開発者であり、同じ問題に直面している他の人たちです。
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);
}
}
これにより、実行時にメソッドが読み込まれて呼び出されるため、たとえば次のようにコンパイルできます。 Android 2.3.3。
あなたのウェブサービスは同じドメインからホストしていますか?私は以前、別のドメインのサービスにajax呼び出しを行っているときにこのエラーが発生していました。 Webサービスを制御できる場合は、ヘッダーにAccess-Control-Allow-Origin:*を設定できます(ただし、この方法は安全な方法ではありません)。