codeigniter(CSRF)jQuery的阿贾克斯问题 [英] Codeigniter (CSRF) jQuery ajax problem
问题描述
我有一个问题在这里,我不断收到一个错误,当我尝试发布一些与阿贾克斯(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屋!