$(function() {
$.ajax({
//请求方式
type:'POST',
//发送请求的地址
url:'/index.php/mobile/Activity/help_cut?id={$_GET["id"]}&referrer_id={$_GET["referrer_id"]}',
//服务器返回的数据类型
dataType:'json',
success:function(data){
layer.open({
content: data.message
}); },
error:function(jqXHR){
}
});
location.reload();
});
页面加载完会有一个提示弹框,然后页面数据会发生变化,我想弹框完了刷新页面数据,但我现在用location.reload();会一直刷新页面,而且在刷新数据的时候我需要不执行success的弹窗。大神帮帮我

解决方案 »

  1.   

    dataType:'json',
    success:function(data){
    //layer.open({
    //content: data.message
    //});
    location.reload();
    },
    error:function(jqXHR){
    }
    });
    //location.reload();
    });
    不过 刷新页面就失去了 ajax 的优势
      

  2.   

    局部刷新就是把得到数据动态填充到页面上,你刷进行动态刷新新页面失去ajax本意,如果觉得填充数据很繁琐,建议找个前端框架,通过操作框架的model
      

  3.   

    你使用的是layer弹窗框架,这个框架的代码是异步执行,并且不会阻塞代码,所以你如果需要先弹窗,再刷新页面。那么你可以尝试将你的刷新代码放在layer弹窗的框架中去执行,就是ajax之后,直接调用layer的弹窗,然后弹窗上的按钮响应时间中,添加window.location.reload();
      

  4.   

    $(function() {
    $.ajax({
    //请求方式
    type:'POST',
    //发送请求的地址
    url:'/index.php/mobile/Activity/help_cut?id={$_GET["id"]}&referrer_id={$_GET["referrer_id"]}',
    //服务器返回的数据类型
    dataType:'json',
    success:function(data){
    layer.open({
    content: data.message
    });
    location.reload();},
    error:function(jqXHR){
    }
    });
    });
    你应该把弹框放在ajax成功返回后再执行,而你放的位置,刷新页面就执行,当然是刷新死循环了
      

  5.   

    $(function() {})内部写的ajax每次都会执行的 刷新一次执行一次 
    要么把页面需要更新的内容做成异步刷新  要么在执行ajax的时候进行条件判断  或者直接用php控制这段ajax代码的加载
      

  6.   

    在回调里面直接通过ajax.html更新你要更新的内容就行了
      

  7.   

    $(function() {
    $.ajax({
    //请求方式
    type:'POST',
    //发送请求的地址
    url:'/index.php/mobile/Activity/help_cut?id={$_GET["id"]}&referrer_id={$_GET["referrer_id"]}',
    //服务器返回的数据类型
    dataType:'json',
    success:function(data){
    layer.open({
    content: data.message
    });
    location.reload();
    },
    error:function(jqXHR){
    }
    });});
    应该把刷新放在,success里面
      

  8.   

    跳到你本页面的网址不就行了,但是ajax就是为了不刷新而存在的,你这样有什么意义呢