Я реализовал простую запись AJAX (через объект JS XmlHttpRequest) для веб-страницы в веб-сервере.
Однако я обнаружил странный симптом / проблему в браузере по умолчанию в Android OS 2.X.
То есть, если по какой-то причине веб-сервер имеет достаточно длительную задержку для возврата с ответом (может быть смоделирован жестким кодированием Thread.Sleep на веб-странице), браузер автоматически повторно отправит тот же запрос на веб-сервер снова во время ожидания.
<script type="text/javascript">
$(document).ready(function() {
PerformRequest();
});
function PerformRequest() {
appendMessage('PerformRequest... ');
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "http://localhost/DelaySite/Default.aspx", true);
xmlhttp.onreadystatechange = function()
{
appendMessage("xmlhttp.readyState: " + xmlhttp.readyState, true);
appendMessage("xmlhttp.status: " + xmlhttp.status, true);
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
// successful response
}
}
xmlhttp.send();
}
</script>
Кто-нибудь видел эту проблему в браузере Android? Если да, кто-нибудь знает причину?
Разве это не должно рассматриваться как проблема безопасности? Рассмотрим случай, когда каждый запрос может быть выполнен дважды, если между мобильным устройством и хостом достаточно большой задержки в сети.
Однако я не могу повторить эту проблему в ICS, только в Android OS 2.X
С уважением,
Oliver