我有一个是在按钮的点击执行以下的AJAX请求:jquery的AJAX GET请求执行两次
<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在phonegap应用程序中。
更新 - 加入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"
更新 - 亚行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响应。
浏览器日志怎么样,发生了多少请求? – Gajotres 2013-03-19 12:37:16
@Gajotres在桌面浏览器中不会发生这种情况,在weire内部运行时只会看到一个请求。 – gmh04 2013-03-19 13:29:40
你对我的猜测有多容易,并增加或减少服务器返回的时间大大超过或短于30秒?我很好奇你是否仍然会看到你得到的30秒超时。我问,因为30秒是各种事情的相当常见的默认超时值... – 2013-03-21 13:15:31