jquery函数不重定向url

时间:2014-11-02 13:09:57

标签: javascript php jquery ajax codeigniter

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

           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";
                    });
                  }
               })

这只是默认网站主页。再次,萤火虫没有错误

3 个答案:

答案 0 :(得分:1)

location.href上添加窗口对象,如下所示:

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

答案 1 :(得分: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";
                });
              }
           })

BASEPATH应该是这样的" http://www.example.com"

答案 2 :(得分:0)

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