jquery ajax post不起作用,但得到了工作

时间:2012-06-27 05:44:20

标签: jquery ajax codeigniter post get

这个问题确实需要很长时间才能修复并且生病...

昨天开始出现一个非常烦人的错误,我无法解决它为什么会发生的根源......

当我使用以下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?

1 个答案:

答案 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