Access-Control-Allow-Origin Ошибка в 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);
 13 февр. 2013 г., 11:06
что делать, если у меня есть проект под api11?
 31 июл. 2012 г., 04:04
Это работает! Спасибо!
 17 июл. 2012 г., 17:41
это должно работать, у меня была та же проблема в моем приложении
 bahadir arslan17 июл. 2012 г., 10:12
Спасибо, я попробую. Но эмуляторы API Google не имеют этой проблемы; это интересно.
 28 сент. 2012 г., 07:31
Я не хочу показаться глупым, но к какому файлу я добавлю это в свой проект?

Раствор Слуши отлично работает. Но если вы хотите компилировать и поддерживать системы ниже 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.

 18 июл. 2013 г., 14:45
Хорошее решение. Есть ли возможность отключить это свойство для версии ниже SDK 16.?

ать эту ошибку, делая ajax-вызов к службе в другом домене. Если у вас есть контроль над веб-сервисом, вы можете установить Access-Control-Allow-Origin: * в заголовке (хотя этот способ не является безопасным способом сделать это.)

 bahadir arslan04 июл. 2012 г., 12:21
извините, я не могу понять. мой сервис установлен на sub.domain.com, и я пытаюсь подключить его с мобильного устройства; но я получил ошибку, потому что происхождение равно нулю и не разрешено Access-Control-Allow-Origin.
 04 июл. 2012 г., 10:13
Разные субдомены также не допускаются. Chrome действовал действительно странно (он работал нормально для моего запроса "get", но менял мой запрос "post" на запрос "OPTIONS"), мне потребовалось много времени, чтобы выяснить ошибку. Ошибка исчезла, когда я поместил сервисы и клиентский код в один и тот же поддомен.
 bahadir arslan04 июл. 2012 г., 11:53
это невозможно для меня; потому что клиент является мобильным устройством :) спасибо за вашу помощь.
 bahadir arslan04 июл. 2012 г., 07:04
На самом деле они находятся в одном домене, но в разных поддоменах. Но я не мог понять, почему я получил эту ошибку только Android 4.1, а не более старые версии? Что изменилось?
 04 июл. 2012 г., 12:08
Проблема в том, что если вы обслуживаетеdomainname.com/subdomainname URL, который использует ваш клиент, должен иметь то же имя субдомена. это URL, а не мобильное устройство.

Ваш ответ на вопрос