微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Codeigniter(CSRF)jQuery ajax问题

在这里一个问题,当我尝试用ajax(POST)发布一些东西时,我会收到一个错误.我知道这是给我这些问题的CSRF,而且我一直在尝试寻找解决方案.但是,我希望有人能帮助我!

这是我不断得到的错误(来自Google Chrome检查器)

*无法加载资源:服务器响应状态为500(内部服务器错误)
XHR完成加载:“http:// localhost / woho / ajax / images”.*

PHP(控制器)

class Ajax extends CI_Controller {

    function images() {

        echo 'Hello World';

    }

}

使用Javascript

var ID = $(".imageWrap:last").attr("id");
var baseurl = "http://localhost/woho/";
var doScroll = 1;
var cct = $.cookie('csrf_cookie_name');

if (location.href == baseurl) {
    $(window).scroll(function(){
        if ($(window).scrollTop() > $('body').height() / 2) {
            if(doScroll == 1) {                   
                $.post(baseurl + 'ajax/images',{'id' : ID,'csrf_token_name': cct},function(data) {
                    alert(data);
                    $("#wrapper_content").append(data);
                    ID++;
                });
            }
        }
    });
}

我的CCT var从javascript给了我正确的标记或“哈希”,但是当javascript发送ajax请求时,codeigniter返回一个错误,

An Error Was Encountered The action you have requested is
not allowed.

我如何解决这个问题?我需要验证CSRF令牌或我的控制器中的某些东西吗?

我正在使用Codeigniter 2.0.3

尝试(javascript):
var ID = $(".imageWrap:last").attr("id");
var baseurl = "http://localhost/woho/";
var doScroll = 1;
var cct = $.cookie("<?PHP echo $this->config->item("csrf_cookie_name"); ?>");

if (location.href == baseurl) {
    $(window).scroll(function(){
        if ($(window).scrollTop() > $('body').height() / 2) {
            if(doScroll == 1) {                   
                $.post(baseurl + 'ajax/images',{'id':ID,'<?PHP echo $this->security->get_csrf_token_name(); ?>': cct},function(data) {
                    alert(data);
                    $("#wrapper_content").append(data);
                    ID++;
                });
            }
        }
    });
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐