问题描述
我需要通过 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请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!