【发布时间】:2012-03-02 00:47:45
【问题描述】:
我已经实现了一个简单的 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 中复制
问候,
奥利弗
【问题讨论】:
-
看起来和stackoverflow.com/questions/15499647/…这里提出的问题相同
标签: javascript android security cordova