2013-09-30 53 views
0

我有一個自舉定義爲這個(2.3.2)模態:不能使自舉模式+笨一起工作

<div id="myModal" class="modal hide fade"> 
    <div class="modal-header"> 
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
    <h3>Modal header</h3> 
    </div> 
    <div class="modal-body"> 
    </div> 
    <div class="modal-footer"> 
    <a href="#" class="btn">Close</a> 
    <a href="#" class="btn btn-primary">Save changes</a> 
    </div> 
</div> 

我也有一個這樣的按鈕:

<button type="button" data-toggle="modal" data-remote="index.php/mycontroller/methodname" data-target="#myModal">Launch modal</button> 

方法在控制器:

public function methodname() { 
     $this->load->view('modalbody'); 
} 

如果我直接用瀏覽器訪問:本地主機/ myproject的/ index.php文件/ myController的/方法名,我可以得到的HTML沒有任何問題,但如果我點擊按鈕,我有500內部服務器錯誤。爲什麼以及如何解決這個問題?

編輯:當模式被加載我沒有看到我的HTML被注入內'模態身體'。我還深入了一點(通過使用firefox +螢火蟲)和internel錯誤是'你所要求的行動是不允許的'。 (當使用谷歌瀏覽器它沒有顯示任何詳細的錯誤味精)這與csrf_protection(我已經設置爲true)有關。所以當調用這個模式時,我必須傳遞csrf標記名和散列(即通過使用$ this-> security-> get_csrf_token_name();),但我已經查看了bootstrap js源代碼,data-remote是簡單地調用jQuery的負載功能:

.load(this.options.remote) 

不接受任何數據,因此我應該如何去打發CSRF令牌名稱和哈希????

+0

獲取500錯誤在哪裏?在檢查員?整頁是500錯誤?模態是否出現? – stormdrain

+0

我編輯了我的問題,請參閱上面的 – Josh

+0

您是否可以包含兩個視圖的代碼?或者至少有更多關於你想要做什麼的細節。使用你在這裏發佈的代碼,我無法重現這個問題。即使CSRF打開並在頁面和模式視圖中同時生成。 – stormdrain

回答

0

嘗試../的index.php ...或../../的index.php ...模態網址...

+0

路徑是正確的。 – Josh

0

第一@stormdrain指着我右方向的感謝,這是爲什麼。

在我的js文件中,我有類型爲'POST'的ajaxsetup定義(我的頁面有幾個ajax調用)。即:

$.ajaxSetup({ 
    url: 'index.php/page', 
      type: 'POST', 
      dataType: 'JSON' 
    }); 

所以,當模式調用jQuery的負載功能,它需要的類型值,而不是使用「搞定」它使用「郵報」所以這就是爲什麼我的模式沒有,而沒有經過CSRF工作。我已經刪除了ajaxsetup中的'type:POST',現在沒有通過任何CSRF參數就沒問題了。