如何使用JQuery for AJAX帖子进行硬刷新?

时间:2016-06-24 14:53:21

标签: javascript php jquery ajax

我使用的是JQuery,页面的行为就像刷新但不更新我的表格。我使用location.reload(true);的所有其他JQuery命令都进行了硬刷新。使用这个AJAX版本似乎并没有这样做。我计划稍后使用AJAX来更新div,但是现在整个页面刷新是我需要的。

JS

$(document).ready(function(){
    $('#import_audit').click(function(){
    //alert("Audit Deleted");
    $('#import_audit_div').modal('show'); //show modal with id="import_audit_div"

    $('#import_audit_table').load("edit_audits.php?action=import"); //Doesn't load from database until modal is loaded.
    });

    $(function() {
        $("#import_audit_form").submit(function(e) {
            e.preventDefault(); 

            // 'this' refers to this form element
            var data = $(this).serialize();

            $.ajax({
                type: "POST",
                url: "edit_audits.php?action=process_import",
                data: data,  
                success: function (data) {
                    alert("Audit Transfered");
                    //$('#import_audit_div').modal('hide');

                    location.reload(true);
                    //trying to reload only the div
                    //$("#Results1").load(location.href + " #Results1");

                }
            });  
        });  
    });
});

2 个答案:

答案 0 :(得分:0)

您错过了底部的});。在您的浏览器开发工具中,它是否在您的控制台中显示错误?我认为你的javascript实际上并不起作用,这意味着location.reload(true)永远不会触发。

答案 1 :(得分:0)

我认为它是缓存的ajax请求本身。尝试添加缓存设置。

$.ajax({
    type: "POST",
    url: "edit_audits.php?action=process_import",
    data: data,  
    cache : false,
    ...

关于这是否有影响,有一些相互矛盾的信息,但值得尝试。

缓存(默认值:true,false,对于dataType'script'和'jsonp') 类型:布尔值 如果设置为false,它将强制浏览器不缓存请求的页面。注意:将缓存设置为false只能与HEAD和GET请求一起正常工作。它的工作原理是将“_ = {timestamp}”附加到GET参数。其他类型的请求不需要该参数,但在IE8中,当对已经由GET请求的URL进行POST时,该参数除外。

您还可以尝试全局禁用缓存,以查看是否有任何更改。

$ .ajaxSetup({cache:false});