Ошибка доступа-контроля-разрешения-источника на Android 4.1

У меня проблемы с Access-Control-Allow-Origin на Android 4.1

В моем приложении у меня есть некоторые локальные HTML файлы и Javascripts, которые я использовал для извлечения данных из веб-служб. До попытки Android 4.1 не было никаких проблем, но после попытки на Android 4.1 я получил эту ошибку.

Я прочитал много документов, но не смог найти способ решить эту проблему.

3 ответа

вам нужно сделать что-то вроде

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-вызова для службы в другом домене. Если у вас есть контроль над веб-службой, вы можете установить Access-Control-Allow-Origin: * в заголовке (хотя этот способ не является безопасным способом для этого).

licensed under cc by-sa 3.0 with attribution.