2014-11-02 80 views
0

我正在使用codeigniter和jquery。我使用ajax发送一些信息给codeigniter函数来执行数据库操作,以便更新页面。操作完成后,我正在尝试刷新页面。但刷新工作不一致,通常我必须手动重新加载页面。我看到在萤火虫没有错误:jquery函数不重定向url

  var message = $('#send_message').val() 
       if ((searchIDs).length>0){ 
        alert("searchIDs "+searchIDs); 
       $.ajax({ 
        type: "POST", 
        url: "AjaxController/update", 
        data:{ i : searchIDs, m : message },       
        dataType: 'json', 
        success: function(){ 
         alert("OK"); 
        }, 
        complete: function() { 
         location.href = "pan_controller/my_detail"; 
        } 
       }) 
       .done(function() { // echo url in "/path/to/file" url 
       // redirecting here if done 
       alert("OK"); 
       location.href = "pan_controller/my_detail"; 
       }); 

       } else { alert("nothing checked") } 
       break; 

我该如何解决这个问题?

附录:我试着改变;

$.ajax({ 
        type: "POST", 
        url: "AjaxController/update", 
        data:{ i : searchIDs, m : message },       
        dataType: 'json', 
        .done(function() { // echo url in "/path/to/file" url 
        // redirecting here if done 
         alert("REFRESHING.."); 
         location.href = "pan_controller/my_detail"; 
        }); 
        } 
       }) 

这只是默认的网站主页。再次,在Firebug

+0

对我的错误思考 – Grumpy 2014-11-02 13:14:03

+0

尝试在你的url中预先加一个斜杠,如下所示:'location.href =“/ pan_controller/my_detail”;' – istos 2014-11-02 13:19:08

+0

服务器操作在某些情况下是否返回错误? – Pointy 2014-11-02 13:26:25

回答

1

没有错误的location.href添加窗口对象是这样的:

window.location.href = "pan_controller/my_detail"; 
+0

对不起,这没有帮助。同样,这个数据库更新确实发生了,只是页面刷新没有,我必须手动执行此操作。它在我当地的wamp上按预期工作,但是当我推送到我的共享主机文件夹时,它似乎只是有时候才起作用。 – user61629 2014-11-02 17:24:37

+0

在共享主办我认为你还应该包括主机 – noobHere 2014-11-03 01:33:54

+0

对不起,家伙,不工作,但感谢您的想法。 – user61629 2014-11-04 13:48:56

1

尽量使用像

$.ajax({a 
       type: "POST", 
       url: "YOURBASEPATH/AjaxController/update", 
       data:{ i : searchIDs, m : message },       
       dataType: 'json', 
       .done(function() { // echo url in "/path/to/file" url 
       // redirecting here if done 
        alert("REFRESHING.."); 
        location.href = "YOURBASEPATH/pan_controller/my_detail"; 
       }); 
       } 
      }) 

基本路径完整路径应该是这样的 “http://www.example.com

+0

嗨Shaiful,我最终它工作的方式,你建议,在我的一部分工作与JavaScript变量混淆后。感谢您的努力和您对其他问题的评论。事实证明,我可以看到刷新正在发生,但重新加载数据库不会发生,所以我开始认为这可能是某种数据库或ORM问题。我鼓励你,因为这是一个好主意,即使它在这种情况下没有帮助。问候 - 比尔 – user61629 2014-11-04 13:48:10

0

尝试禁用csrf_enabled(config/config.php)并尝试它。如果可行,那么重新启用保护,而不是自己编译数据,将表单序列化;或者,至少包括csrf隐藏字段codeigniter自动添加。您也可以使用GET来避免CSRF保护,但这是解决方案中最不可取的。