我有一个引导程序(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">×</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 internal server error 。为什么以及如何解决这个问题?
编辑:当模态加载时,我没有看到我的 html 被注入到“modal-body”中。此外,我深入挖掘(通过使用 firefox + firebug),内部错误是“不允许您请求的操作。” (当使用谷歌浏览器时,它没有显示任何详细的错误消息)这与 csrf_protection 有关(我已将其设置为 true)。所以这意味着在调用此模式时,我必须传递 csrf 令牌名称和哈希(即通过使用 $this->security->get_csrf_token_name();),但我查看了引导 js 源代码 data-remote只是调用 jQuery 加载函数:
.load(this.options.remote)
不接受任何数据,那么我将如何传递 csrf 令牌名称和哈希????