Android4.1のAccess-Control-Allow-Originに問題があります
私のアプリケーションには、Webサービスからデータをフェッチするために使用していたローカルHTMLファイルとJavascriptがいくつかあります。Android 4.1を試すまでは問題はありませんでしたが、Android 4.1を試した後、このエラーが発生しました。
私はたくさんの文書を読みましたが、この問題を解決する方法を見つけることができませんでした。
Android4.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);
}
}
これにより、実行時にメソッドが読み込まれて呼び出されるため、Android2.3.3などでコンパイルできます。
あなたのウェブサービスは同じドメインからホストしていますか?別のドメインのサービスにajax呼び出しを行っているときに、このエラーが発生していました。Webサービスを制御できる場合は、ヘッダーにAccess-Control-Allow-Origin:*を設定できます(ただし、この方法は安全な方法ではありません)。