У меня есть следующий запрос ajax, который выполняется одним нажатием кнопки:
<a href="javascript:test()"><img src="css/images/test.png"></a>
function test(){
console.debug("*");
$.ajax({
type: "GET",
dataType: "json",
url: '/path/to/url',
success: function(data){
console.debug("**");
},
error: function(jqXHR, status, error){
console.debug("*** " + status + " : " + error + " : " + jqXHR.status);
},
cache: false
});
}
Ответ на запрос занимает приблизительно 30 секунд для возврата. Тем не менее, запрос принимается и выполняется сервером дважды, как это видно из журналов apache. Временная метка запросов составляет 30 секунд, но запрос идентичен (например, _ _ = 1363692320782). Функция ответа на клик вызывается один раз, и обратный вызов ошибки вызывается один раз (ровно через 60 секунд после первоначального запроса), хотя ответ apache равен 200.
Эта проблема была воспроизведена в Samsung Galaxy S2, версия Android 2.3.5 в приложении для телефонных разговоров.
UPDATE - добавление записей журнала Apache из комментария ниже
1.2.3.4 - - [19/Mar/2013:14:07:59 +0000] "GET /pcapi/records/dropbox/08342hjg9gpqm7g/?_=1363702072225 HTTP/1.1" 200 11139 "-" "Mozilla/5.0 (Linux; U; Android 2.3.5; en-gb; GT-I9100 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
1.2.3.4 - - [19/Mar/2013:14:08:29 +0000] "GET /pcapi/records/dropbox/08342hjg9gpqm7g/?_=1363702072225 HTTP/1.1" 200 11139 "-" "Mozilla/5.0 (Linux; U; Android 2.3.5; en-gb; GT-I9100 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
UPDATE - adb logcat
I/Web Console(16747): * at file:///android_asset/www/js/mobile.js:1769
I/Web Console(16747): *** error : : 0 at file:///android_asset/www/js/mobile.js:1779
ОБНОВЛЕНИЕ - монитор TCP/IP
Загрузка запросов через монитор TCP/IP показывает, что оба запроса отправляются с ответом 200 для обоих.