我很困惑,爲什麼笨不會讓我用這個:笨CSRF jQuery的問題
$(function() {
var csrf = $.cookie("<?php echo $this->config->item('csrf_cookie_name'); ?>"),
csrfToken = "<?php echo $this->security->get_csrf_token_name(); ?>";
$('.notificationBoxClose').click(function() {
var url = $(this).attr('href');
$.post(url, {csrfToken: csrf}, function() {
$('#notification').fadeOut('slow', function() {$this.remove()});
});
return false;
});
});
當我這樣做完全一樣的這樣的代碼,它工作正常:
$(function() {
var csrf = $.cookie("<?php echo $this->config->item('csrf_cookie_name'); ?>");
$('.notificationBoxClose').click(function() {
var url = $(this).attr('href');
$.post(url, {<?php echo $this->security->get_csrf_token_name(); ?>: csrf}, function() {
$('#notification').fadeOut('slow', function() {$this.remove()});
});
return false;
});
});
爲什麼不能我做安全 - > get_csrf_token_name(); ?>變成一個變量?
什麼是錯誤?令牌名稱中沒有可能會破壞JavaScript代碼的字符? – bububaba 2012-04-03 07:49:50
在第一個例子中,你沒有定義'csrfToken'變量。像'var csrfToken =「...'。也許這就是爲什麼 – safarov 2012-04-03 07:54:40
錯誤是」您所請求的操作是不允許的「。 – Jacinto 2012-04-03 08:11:44