codeigniter(CSRF)jQuery的阿贾克斯问题 [英] Codeigniter (CSRF) jQuery ajax problem

查看:151
本文介绍了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,

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

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

我怎样才能解决这个问题?我是否需要验证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的阿贾克斯问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆