Я тестирую веб-страницу на эмуляторах Android 2.0 и 2.2, и запросы jQuery.ajax (), которые выполняет приложение, имеют немного другое поведение в отношении заголовков HTTP-аутентификации.
Сервер, к которому я обращаюсь, требует базовой аутентификации, а запросы ajax в 2.2 отправляют правильный заголовок аутентификации. В 2.0 я отлаживаю с помощью Fiddler, и кажется, что запросы не включают в себя заголовок auth, и сервер отклоняет запрос с ошибкой 401.2. Я не думаю, что это имеет значение, но сервер работает под управлением IIS 7.
Одна интересная вещь, которую я заметил при отладке веб-запросов, состоит в том, что Android 2.2 делает два запроса для каждого ресурса, независимо от того, XHR или нет. Один не содержит заголовок Auth, а второй -. В 2.0, кажется, делает 2 запроса на все, кроме XHR:
Вот заголовок 2.2 для первого XHR:
GET http://192.168.1.111/sonar/mobileweb/sonar/views/week/init.ejs HTTP/1.1
Host: 192.168.1.111
Accept-Encoding: gzip
Referer: http://192.168.1.111/sonar/mobileweb/sonar/sonar.html
Accept-Language: en-US
User-Agent: Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Accept: text/plain, */*
X-Requested-With: XMLHttpRequest
Accept-Charset: utf-8, iso-8859-1, utf-16, *;q=0.7
Заголовок 2.2 для второго XHR:
GET http://192.168.1.111/sonar/mobileweb/sonar/views/week/init.ejs HTTP/1.1
Host: 192.168.1.111
Accept-Encoding: gzip
Referer: http://192.168.1.111/sonar/mobileweb/sonar/sonar.html
Accept-Language: en-US
User-Agent: Mozilla/5.0 (Linux; U; Android 2.2; en-us; sdk Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Authorization: Basic cGFyaXZlZGFcZGF2aWQubW9ycmlzOjIzbkx2ZWxsbGw=
Accept: text/plain, */*
X-Requested-With: XMLHttpRequest
Accept-Charset: utf-8, iso-8859-1, utf-16, *;q=0.7
И заголовок 2.0:
GET http://192.168.1.111/app/views/week/init.ejs HTTP/1.1
Host: 192.168.1.111
Accept-Encoding: gzip
Referer: http://192.168.1.111/app/app.html
Accept-Language: en-US
User-Agent: Mozilla/5.0 (Linux; U; Android 2.0; en-us; sdk Build/ECLAIR) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17
Accept: text/plain, */*
X-Requested-With: XMLHttpRequest
Accept-Charset: utf-8, iso-8859-1, utf-16, *;q=0.7
Кто-нибудь испытывал такое поведение раньше? Это в основном заставляет мое приложение вообще не работать в версии 2.0. Версия 2.1, кажется, действует так же, как 2.0.
Дайте мне знать, если у вас есть идеи, спасибо за вашу помощь,
Dave