我制作了一个简单的自动加载功能,当您在网站上向下滚动时加载内容。但是,当我在 Codeigniter 中启用 CSRF 保护时,似乎存在一些问题。
我没有使用表单,所以当我在滚动时执行发布请求时,我不知道如何将令牌从 A 发送到 B。
我的 JavaScript
if (location.href == baseurl) {
$(window).scroll(function(){
if ($(window).scrollTop() > $('body').height() / 2) {
if(doScroll == 1) {
$.post(baseurl + 'ajax/images',{'id' : ID}, function(data) {
$("#wrapper_content").append(data);
if(data == 'Det finnes ikke flere bilder i databasen, WTF!? Send inn forslag ASAP!') {
doScroll = 0;
}
ID++;
});
}
}
});
}
由于 Codeigniter 期望所有 POST 请求都有一个 TOKEN,所以当启用 CSRF 时,我无法让它工作。有什么建议么?
启用 CSRF 时出错
无法加载资源:服务器响应状态为 500(内部服务器错误)
如果我关闭 CSRF,一切都会很好......
您可能想尝试我使用过的这段代码。它效果很好:
<script type="text/javascript">
$(function(){
$('.answerlist').each(function(e){
$(this).click(function(){
var valrad = $("input[@name=answer]:checked").val();
var post_data = {
'ansid': valrad,
'<?php echo $this->security->get_csrf_token_name(); ?>' : '<?php echo $this->security->get_csrf_hash(); ?>'
};
$.ajax({
type: "POST",
url: "<?php echo base_url(); ?>online/checkanswer",
data: post_data,
success: function(msg){
/// do something
}
});
});
});
});
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)