本文介绍了codeigniter(CSRF)jQuery的阿贾克斯问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个问题在这里,我不断收到一个错误,当我尝试发布一些与阿贾克斯(POST)。我知道这是CSRF,让我这些问题,我一直在试图来回试图找到一个解决方案。不过,我希望在这里有人能帮助我!

I’ve got a issue here, i keep getting a error when i try to post something with ajax (POST). I know it is the CSRF that gives me these problems and I’ve been tried back and forth trying to find a solution. However, i hope somebody here can help me out!

这是我不断收到(从谷歌浏览器检查)错误,

This is the error i keep getting (from google chrome inspector),

*的无法加载资源:与500(内部服务器错误)状态的服务器响应XHR加载完成:HTTP://本地主机/ woho / AJAX /图片的*

*Failed to load resource: the server responded with a status of 500 (Internal Server Error)XHR finished loading: "http://localhost/woho/ajax/images".*

PHP(控制器)

class Ajax extends CI_Controller {

    function images() {

        echo 'Hello World';

    }

}

Javascript的

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++;
                });
            }
        }
    });
}

这是我的javascript CCT无功给了我正确的标记或散,但是当的JavaScript发送Ajax请求codeigniter返回类似错误,

my CCT var from javascript gives me the correct token or "hash" but when the javascript sends the ajax request codeigniter returns an error like,

时遇到一个错误,你刚才的请求是  不允许的。

我怎样才能解决这个问题?我是否需要验证CSRF令牌或某事在我的控制器?

How can i fix this? do i need to validate the CSRF Token or something in my controller?

我用codeigniter 2.0.3

I'm using Codeigniter 2.0.3

推荐答案

尝试(JavaScript的):

Try (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++;
                });
            }
        }
    });
}

这篇关于codeigniter(CSRF)jQuery的阿贾克斯问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-15 13:02
查看更多