Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript POST中发送CSRF令牌时出错_Javascript_Spring_Spring Security_Csrf_Csrf Protection - Fatal编程技术网

在javascript POST中发送CSRF令牌时出错

在javascript POST中发送CSRF令牌时出错,javascript,spring,spring-security,csrf,csrf-protection,Javascript,Spring,Spring Security,Csrf,Csrf Protection,在我的web应用程序中,我使用spring security3.2.x,并进行CSRF验证。在我的登录页面中,我已成功完成此操作。但是在里面,我有一个按钮,按钮动作写在javascript中 $('#download').click(function(){ var paramValue = '${params}'; var params = $('#params_').clone() $('<form

在我的web应用程序中,我使用spring security3.2.x,并进行CSRF验证。在我的登录页面中,我已成功完成此操作。但是在里面,我有一个按钮,按钮动作写在javascript中

        $('#download').click(function(){

            var paramValue = '${params}';
            var params = $('#params_').clone()
            $('<form target="_blank" action="report" method="post"></form>').append(params).appendTo('body').submit().remove();

        });
$('#下载')。单击(函数(){
var paramValue='${params}';
var params=$('#params').clone()
$(“”).append(params.appendTo('body').submit().remove();
});
现在的问题是,当我点击该按钮时,它会出现以下错误

在请求参数“\u CSRF”或标头“X-CSRF-Token”上发现无效的CSRF令牌“null”

我认为这是因为它无法发送CSRF令牌。谁能告诉我怎么解决这个问题吗


提前感谢

是的,正如您所说,这是因为您动态创建的表单不包含有效的CSRF令牌输入。发件人:


这将向ajax请求添加所需的头。

是的,正如您所说,这是因为动态创建的表单不包含有效的CSRF令牌输入。发件人:


这将向ajax请求添加所需的头。

是的,正如您所说,这是因为动态创建的表单不包含有效的CSRF令牌输入。发件人:


这将向ajax请求添加所需的头。

是的,正如您所说,这是因为动态创建的表单不包含有效的CSRF令牌输入。发件人:


这将向您的ajax请求添加所需的头。

好的,我的问题在下面一行中,我没有像正常表单提交那样发送csrf令牌

        $('<form target="_blank" action="report" method="post"></form>').append(params).appendTo('body').submit().remove();
$(“”).append(params.appendTo('body').submit().remove();
所以我所做的就是创建了隐藏字段并像下面那样插入它

<script type="text/javascript">

    $(document).ready(function () {
    $('#download').click(function(){                

            var params = $('#params_').clone();
            var csrftoken = $("#csrftoken_").clone();
            $('<form target="_blank" action="report" method="post"></form>')
                .append(params)
                .append(csrftoken)
                .appendTo('body')
                .submit()
                .remove();

        });
    });
</script>

  <input type='hidden' id='params_' name='params' value='${params}' />
  <input type="hidden" id="csrftoken_" name="${_csrf.parameterName}" value="${_csrf.token}" /> 

$(文档).ready(函数(){
$('#下载')。单击(函数(){
var params=$('#params').clone();
var csrftoken=$(“#csrftoken”).clone();
$('')
.append(参数)
.append(csrftoken)
.appendTo('正文')
.提交()
.remove();
});
});

这很有效……

好的,我的问题是在下面的一行中,我没有像正常表单提交一样发送csrf令牌

        $('<form target="_blank" action="report" method="post"></form>').append(params).appendTo('body').submit().remove();
$(“”).append(params.appendTo('body').submit().remove();
所以我所做的就是创建了隐藏字段并像下面那样插入它

<script type="text/javascript">

    $(document).ready(function () {
    $('#download').click(function(){                

            var params = $('#params_').clone();
            var csrftoken = $("#csrftoken_").clone();
            $('<form target="_blank" action="report" method="post"></form>')
                .append(params)
                .append(csrftoken)
                .appendTo('body')
                .submit()
                .remove();

        });
    });
</script>

  <input type='hidden' id='params_' name='params' value='${params}' />
  <input type="hidden" id="csrftoken_" name="${_csrf.parameterName}" value="${_csrf.token}" /> 

$(文档).ready(函数(){
$('#下载')。单击(函数(){
var params=$('#params').clone();
var csrftoken=$(“#csrftoken”).clone();
$('')
.append(参数)
.append(csrftoken)
.appendTo('正文')
.提交()
.remove();
});
});

这很有效……

好的,我的问题是在下面的一行中,我没有像正常表单提交一样发送csrf令牌

        $('<form target="_blank" action="report" method="post"></form>').append(params).appendTo('body').submit().remove();
$(“”).append(params.appendTo('body').submit().remove();
所以我所做的就是创建了隐藏字段并像下面那样插入它

<script type="text/javascript">

    $(document).ready(function () {
    $('#download').click(function(){                

            var params = $('#params_').clone();
            var csrftoken = $("#csrftoken_").clone();
            $('<form target="_blank" action="report" method="post"></form>')
                .append(params)
                .append(csrftoken)
                .appendTo('body')
                .submit()
                .remove();

        });
    });
</script>

  <input type='hidden' id='params_' name='params' value='${params}' />
  <input type="hidden" id="csrftoken_" name="${_csrf.parameterName}" value="${_csrf.token}" /> 

$(文档).ready(函数(){
$('#下载')。单击(函数(){
var params=$('#params').clone();
var csrftoken=$(“#csrftoken”).clone();
$('')
.append(参数)
.append(csrftoken)
.appendTo('正文')
.提交()
.remove();
});
});

这很有效……

好的,我的问题是在下面的一行中,我没有像正常表单提交一样发送csrf令牌

        $('<form target="_blank" action="report" method="post"></form>').append(params).appendTo('body').submit().remove();
$(“”).append(params.appendTo('body').submit().remove();
所以我所做的就是创建了隐藏字段并像下面那样插入它

<script type="text/javascript">

    $(document).ready(function () {
    $('#download').click(function(){                

            var params = $('#params_').clone();
            var csrftoken = $("#csrftoken_").clone();
            $('<form target="_blank" action="report" method="post"></form>')
                .append(params)
                .append(csrftoken)
                .appendTo('body')
                .submit()
                .remove();

        });
    });
</script>

  <input type='hidden' id='params_' name='params' value='${params}' />
  <input type="hidden" id="csrftoken_" name="${_csrf.parameterName}" value="${_csrf.token}" /> 

$(文档).ready(函数(){
$('#下载')。单击(函数(){
var params=$('#params').clone();
var csrftoken=$(“#csrftoken”).clone();
$('')
.append(参数)
.append(csrftoken)
.appendTo('正文')
.提交()
.remove();
});
});

这很有效……

您在ajax请求头中看到这个头了吗?找到了答案。检查我给出的答案,你是对的。这不是一个ajax请求,不知道为什么我看不到。您在ajax请求头中看到这个头了吗?找到了答案。检查我给出的答案,你是对的。这不是一个ajax请求,不知道为什么我看不到。您在ajax请求头中看到这个头了吗?找到了答案。检查我给出的答案,你是对的。这不是一个ajax请求,不知道为什么我看不到。您在ajax请求头中看到这个头了吗?找到了答案。检查我给出的答案,你是对的。这不是ajax请求,不知道为什么我看不到。