AJAX调用返回以前版本的脚本

时间:2014-10-05 15:59:59

标签: javascript ajax

我有一个被点击的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>

1 个答案:

答案 0 :(得分:1)

似乎结果是缓存的。由于您可能无法控制其他用户&#39;浏览器缓存,一种解决方案是使用随机数查询页面。像这样:

var page = "includes/details.php?pCode=" + pCode +"&success=yes&random=" + Math.random();

因此,结果不会被缓存,您将始终获得最新版本。