这个问题确实需要很长时间才能修复并且生病...
昨天开始出现一个非常烦人的错误,我无法解决它为什么会发生的根源......
当我使用以下javascript代码时:
$(".reply_to_article").click(function(){
var cct = $.cookie('csrf_cookie_name');
var body = $(this).parent().find("textarea");
$.ajax({
type: "POST",
url: "http://www.domain.com/articles/replyToArticle",
dataType: 'json',
data: {
body : body.val(),
csrf_name : csrf_value
},
success: function(data) {
}
});
});
并单击reply_to_article按钮,请求只是没有结束,并且无限时间...当我检查firebug时,加载图像始终旋转而不会结束...当我按下ESC它不会返回任何内容...也检查所有其他浏览器......
还尝试直接访问ajax文件并且它可以工作......但是这个POST不是
如何使用GET而不是POST?
答案 0 :(得分:0)
我猜你有CSRF安全性,你正在向控制器“发布”数据。在这种情况下,控制器调用Security构造函数,该构造函数检查&验证CSRF令牌。如果令牌不正确,则返回500 HTTP错误。因此,首先检查500错误。如果是这样的话,我猜你处理csrf令牌的方式目前是不正确的。
我不确定csrf_name和csrf_value是什么,但它应该是
名称应为:<?php echo $this->security->get_csrf_token_name();?>
,值应为<?php echo $this->security->get_csrf_hash(); ?>
将这两个值存储在隐藏字段中,然后在脚本中使用它。
阅读此SO问题了解详情:codeigniter csrf protection error with ajax