我想编写一个从MySQL数据库返回数据的Ajax请求。但它无法正常工作,因为如果数据已更改,Ajax请求不会返回mysql数据库的当前值。相反,它总是返回数据库的旧数据。 php文件工作正常,如果我在浏览器中打开它,它会显示正确的当前数据值。我发现,如果我首先在浏览器中手动打开php文件,那么Ajax请求只显示正确的当前数据值。如果我再次使用ajax请求,它将返回正确的当前数据。我做错了什么?
这是Ajax请求的代码:
var scannedTubes = (function() {
var tmp = null;
$.ajax({
async: false,
url: "ajaxtest.php",
success: function(response) {
alert("RESPONSE: " + response);
tmp = response;
},
error: function(jqXHR, textStatus, errorThrown) {
alert(errorThrown);
}
});
return tmp;
})();
ajaxtest.php文件的代码如下:
<?php
$con = mysqli_connect("", "root");
if(mysqli_connect_errno()){
echo "FAIL: " . mysqli_connect_error();
}
mysqli_select_db($con, "multitubescan");
$queryStr = "SELECT code FROM scan WHERE row = 0 AND code <> 'EMPTY'";
$res = mysqli_query($con, $queryStr);
$num = mysqli_num_rows($res);
$scannedTubes = "";
while($data = mysqli_fetch_assoc($res)){
$scannedTubes = $scannedTubes . " " . $data["code"];
}
$scannedTubes = $num . " " . $scannedTubes;
mysqli_close($con);
echo $scannedTubes;
?>
答案 0 :(得分:0)
我认为您的浏览器会缓存数据。 使网址唯一:
url: "ajaxtest.php",
到
url: "ajaxtest.php?rnd=" + Math.random() ,