Je teste une page Web sur les émulateurs Android 2.0 et 2.2, et les requêtes jQuery.ajax() que l'application effectue ont des comportements légèrement différents en ce qui concerne les en-têtes d'authentification HTTP.
Le serveur auquel j'adresse mes requêtes requiert une authentification de base, et les requêtes ajax en 2.2 envoient l'en-tête auth approprié. En 2.0, je débogue avec Fiddler, et il semble que les requêtes n'incluent pas l'en-tête auth, et le serveur rejette la requête avec une erreur 401.2. Je ne pense pas que cela soit important, mais le serveur exécute IIS 7.
Une chose intéressante que j'ai remarquée en déboguant les requêtes web est qu'Android 2.2 effectue deux requêtes pour chaque ressource, qu'il s'agisse ou non d'un XHR. L'une d'elles ne contient pas l'en-tête Auth, et la seconde le contient. En 2.0, il semble faire 2 requêtes pour tout sauf pour les XHR :
Voici l'en-tête 2.2 pour le premier 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
L'en-tête 2.2 pour le deuxième 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
Et l'en-tête 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
Quelqu'un a-t-il déjà été confronté à ce comportement ? En fait, mon application ne fonctionne pas du tout dans la version 2.0. La version 2.1 semble fonctionner de la même manière que la 2.0.
Faites-moi savoir si vous avez des idées, merci pour votre aide,
Dave