2014-11-02 81 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保護,但這是解決方案中最不可取的。