小编典典

将CSRFToken添加到Ajax请求

ajax

我需要传递CSRFToken基于Ajax的帖子请求,但不确定如何才能以最佳方式完成。使用内部签CSRFToken入请求的平台(仅POST请求)

最初我想将其添加到标题中

$(function() {
    $.ajaxSetup({
        headers : {
            'CSRFToken' : getCSRFTokenValue()
        }
    });
});

这将使其可用于每个Ajax请求,但不适用于我的情况,因为in请求CSRFToken仍然以null形式出现。

我可以CSRFToken为所有处理POST类型的Ajax调用设置任何方法吗

编辑 如果我在Ajax调用中执行了类似的操作

data: {"newsletter-subscription-email" : "XXX" , 'CSRFToken': getCSRFTokenValue()},

一切正常。

我的问题是,我想将CSRFToken值作为请求参数而不是请求标头传递


阅读 824

收藏
2020-07-26

共1个答案

小编典典

这个怎么样,

$("body").bind("ajaxSend", function(elm, xhr, s){
   if (s.type == "POST") {
      xhr.setRequestHeader('X-CSRF-Token', getCSRFTokenValue());
   }
});

参考:http :
//erlend.oftedal.no/blog/?
blogid= 118

CSRF作为参数传递,

        $.ajax({
            type: "POST",
            url: "file",
            data: { CSRF: getCSRFTokenValue()}
        })
        .done(function( msg ) {
            alert( "Data: " + msg );
        });
2020-07-26