为什么这不起作用?只有第一个响应的success
调用才有效。
for(i = 1; i <= 6; i++) {
$.ajax({
url : 'runTest.php',
type : 'post',
data : "testNumber="+i+"&url=" + testUrl,
dataType : 'json',
success : function(data) {
var row = $('<tr />');
$('<td />').text(data.testName).appendTo(row);
$('<td />').text(data.testSeverity).appendTo(row);
$('<td />').text(data.testResult).appendTo(row);
$('<td />').text(data.testResultDetail).appendTo(row);
$('<td />').text(data.testDescription).appendTo(row);
$('table#results tbody').append(row);
}
});
}
答案 0 :(得分:1)
服务器端可能存在问题。你一次触发六次相同的PHP脚本;也许数据库(或其他)锁定第一个请求,其他五个返回错误,你没有检查。在这种情况下,您需要在PHP中包含某种while...sleep
循环,等待数据库可用。
以下是我为类似问题所做的工作,当时我使用PHP脚本从Google地图中检索数据并且遇到了请求限制。但这个想法很简单,你应该能够根据自己的需要进行修改:
$params = http_build_query($_GET);
$url = "http://maps.googleapis.com/maps/api/directions/json?sensor=false&" . $params;
$json = file_get_contents($url);
$status = json_decode($json)->status;
// check for over_query_limit status
while ($status=="OVER_QUERY_LIMIT") {
sleep(0.2); // seconds
$json = file_get_contents($url);
$status = json_decode($json)->status;
}