Доступ к нашему веб-приложению в стандартном браузере Android 4.1 и 4.2

Итак, в настоящее время у меня возникла проблема с попыткой открыть наше веб-приложение в официальном стандартном браузере Android для Jelly Bean. Я не знаю, насколько хорошо я могу разработать эту проблему, но я буду стараться изо всех сил.

Для устройств, работающих под управлением ICS или старше, в любом браузере (стандартный, firefox, chrome) мы можем ввести URL-адрес нашего веб-приложения, перейти на страницу входа, войти и просмотреть все в порядке.

Для устройств с Jelly Bean (4.1 и 4.2), если мы введем URL-адрес в стандартный браузер, мы получим следующее:

введите здесь описание изображения

Однако, если мы используем Chrome или Firefox, все в порядке.

Странно, что мы получаем эту ошибку, потому что я уже аутентифицирован в нашей сети, и я только пытаюсь получить доступ к экрану входа в систему, поэтому никакой другой аутентификации не требуется.

Наше веб-приложение получает информацию с сервера, и, похоже, это не проблема на стороне сервера.

Таким образом, похоже, что виновником является стандартный браузер в Jelly Bean, и я попытался найти какие-либо изменения в стандартном веб-браузере с ICS на Jelly Bean, но пока ничего не нашел.

Кто-нибудь сталкивался с такой проблемой или знает о каких-либо больших изменениях (возможно, связанных с безопасностью?), которые были внесены в стандартный браузер Android на Jelly Bean?

РЕДАКТИРОВАТЬ: это веб-приложение недоступно извне. В настоящее время мы только внутренне протестировали, где вы должны быть подключены к нашей внутренней сети.

РЕДАКТИРОВАТЬ 2: только что проверил с помощью браузера Dolphin, и произошло то же самое ... так что я действительно потерялся сейчас, поскольку я еще менее уверен, что это как-то связано со стандартными браузерами 4.1+. Кроме того, еще кое-что, что заставляет меня чувствовать себя еще более потерянным, это то, что я только что проверил стандартный браузер Galaxy SIII на версии 4.1.2, и страница загружается нормально ...

РЕДАКТИРОВАТЬ3: Хорошие новости, наши разработчики провели дальнейшее расследование, и, по-видимому, это проблема:

браузер по умолчанию добавляет к запросу дополнительный заголовок, который заставляет наш сервер думать, что это запрос ajax, и отклоняет его, потому что остальная часть запроса на самом деле не является запросом ajax... Эта ошибка вызвана тем, что браузер по умолчанию в Android 4.1+ добавил новый заголовок ко всем запросам «X-Requested-With: com.android.browser».

Итак, я предполагаю, что браузер Dolphin HD делает то же самое ... проводится дальнейшее расследование, поэтому я вернусь к этому и опубликую ответ.


person Jason Lee    schedule 16.04.2013    source источник
comment
Можете ли вы вставить свой html-код html-страницы, которая выдает эту ошибку?   -  person flexdroid    schedule 16.04.2013
comment
Как я могу проверить источник в браузере?   -  person Jason Lee    schedule 17.04.2013
comment
Не в браузере. У вас нет html-кода страницы, которую вы пытаетесь загрузить?   -  person flexdroid    schedule 17.04.2013
comment
Извините, я не уверен, что мне разрешено вставлять это на видное место. Это продукт, который уже используется нашими клиентами...   -  person Jason Lee    schedule 18.04.2013


Ответы (1)


По словам наших разработчиков, которые провели небольшое исследование:

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

Эта ошибка вызвана тем, что браузер по умолчанию в Android 4.1+ добавил новый заголовок ко всем запросам X-Requested-With: com.android.browser.

В настоящее время мы не можем позволить себе тратить больше времени на поиск хорошего решения этой проблемы с помощью кода... поэтому мы решили задокументировать это как известную проблему и предложить людям использовать Chrome, если у них есть устройство 4.1+.

person Jason Lee    schedule 21.04.2013