无法使引导模态 + 代码点火器协同工作


can't make bootstrap modal + codeigniter work together

我有一个引导 (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');
}

如果我直接使用浏览器访问:localhost/myproject/index.php/mycontroller/methodname,我可以毫无问题地获取html,但是如果我单击该按钮,则会出现500内部服务器错误。为什么以及如何解决这个问题?

编辑:加载模态时,我没有看到我的 html 被注入到"模态体"中。我也深入挖掘了一点(通过使用火狐+火虫(,内部错误是"您请求的操作是不允许的"。(使用谷歌浏览器时,它没有显示任何详细的错误消息(这与csrf_protection有关(我已将其设置为 true(。所以这意味着在调用这个模态时,我必须传递 csrf 令牌名称和哈希(即通过使用 $this->security->get_csrf_token_name((;),但我查看了引导 js 源代码,data-remote 只是调用 jQuery 加载函数:

.load(this.options.remote)

不接受任何数据,那么我将如何传递CSRF令牌名称和哈希????

试试../索引.php...或。。/../索引.php...对于模态网址...

首先感谢

@stormdrain为我指出正确的方向,这就是原因。

在我的js文件中,我有ajaxsetup定义(我的页面有几个ajax调用(,类型为:"POST"。

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

因此,当模态调用jquery加载函数时,它采用类型值,而不是使用"get",而是使用"post",这就是为什么我的模态在不传递CSRF的情况下不起作用的原因。我已经在 ajaxsetup 中删除了"类型:POST",现在无需传递任何 CSRF 参数就可以