我有一个被点击的ajax调用 - 除了它仍然输出旧版本的details.php页面之外,它一切正常并且提供了所需的结果。
HTML:
<div id="productList">
<h3>Product List</h3><hr />
<table width='100%'>
<tr>
<th>Product</th>
<th>Price</th>
</tr>
<?php
$q1 = "select * from products";
$r1 = mysqli_query($cxn,$q1) or die ('Error Q1');
while ($row1=mysqli_fetch_assoc($r1)) {
echo "<tr id='$row1[pCode]' onclick=\"getDetails($row1[pCode]);\" >
<td>$row1[Description]</td>
<td>$row1[SalePrice]</td>
</tr>";
}
?>
</table>
</div>
<div id="productDetails">
<h3>Product Details</h3><hr />
<div id="specifics"></div>
</div>
JS:
<script type="text/javascript">
function getDetails(pCode){
var page = "includes/details.php?pCode=" + pCode +"&success=yes";
var xReq = new XMLHttpRequest();
xReq.open("GET",page,false);
xReq.send(null);
var serverResponse = xReq.responseText;
document.getElementById("specifics").innerHTML=serverResponse;
}
</script>
php只是根据传递给url的pCode值查询数据库并检索信息和输出,但它还原到文件的旧版本,甚至不存在!! < / p>
答案 0 :(得分:1)
似乎结果是缓存的。由于您可能无法控制其他用户&#39;浏览器缓存,一种解决方案是使用随机数查询页面。像这样:
var page = "includes/details.php?pCode=" + pCode +"&success=yes&random=" + Math.random();
因此,结果不会被缓存,您将始终获得最新版本。