本文介绍了添加CSRFToken到Ajax请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要通过 CSRFToken 与基于Ajax的post请求,但不知道如何能以最好的方式完成的。使用平台要求在内部检查 CSRFToken (POST请求)

I need to pass CSRFToken with Ajax based post request but not sure how this can done in a best way.Using a platform which internally checking CSRFToken in request (POST request only)

起初我想将它添加到像

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

这将使每一个Ajax请求可用,但它不会对我的情况下工作,因为在请求 CSRFToken 仍然是未来为空。

有没有什么办法可以设置 CSRFToken 所有Ajax调用处理 POST 键入

Is there any way I can set CSRFToken for all Ajax call dealing with POST type

修改如果我做这样的事情在我的Ajax调用

EditIf I do something like this in my Ajax call

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

一切工作正常。

Everything is working fine.

我的问题是,我想通过 CSRFToken 值作为请求参数,而不是作为一个请求头

My Issue is, I want to pass CSRFToken value as a request parameter and not as a request header

推荐答案

这个怎么样,

$("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 );
        });

这篇关于添加CSRFToken到Ajax请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-01 18:24