【发布时间】:2023-04-01 15:33:01
【问题描述】:
我在我的应用程序中添加了一个 CSRF 令牌。普通表单工作正常,但现在我也必须调整所有 ajax 请求。
在不同的地方有很多 ajax 请求,这就是为什么我正在寻找一种简单的方法来解决这个问题。
是否有某种事件在发送 ajax 请求之前触发,所以我可以将我的 CSRF 令牌添加到请求中?
【问题讨论】:
标签: javascript jquery ajax post
我在我的应用程序中添加了一个 CSRF 令牌。普通表单工作正常,但现在我也必须调整所有 ajax 请求。
在不同的地方有很多 ajax 请求,这就是为什么我正在寻找一种简单的方法来解决这个问题。
是否有某种事件在发送 ajax 请求之前触发,所以我可以将我的 CSRF 令牌添加到请求中?
【问题讨论】:
标签: javascript jquery ajax post
您可以为此使用 ajaxSend,它允许您在执行 ajax 请求之前更改 url。
$( document ).ajaxSend(function( event, jqxhr, settings ) {
if ( settings.url == "ajax/test.html" ) {
$( ".log" ).text( "Triggered ajaxSend handler." );
}
});
【讨论】:
除了cmets中列出的文章中提到的方法外,还有
beforeSend(..) 在发送 AJAX 请求之前调用的函数。
详情请见documentation。
【讨论】:
可以为不同的AJAX事件绑定事件监听see here
$(document).bind("ajaxSend", function(){
$("#loading").show();
}).bind("ajaxComplete", function(){
$("#loading").hide();
});
同样你可以将你的方法绑定为
$(document).bind("ajaxSend", function(){
// code to add CSRF token
})
这些事件在文档上触发并且是GLOBAL EVENT。
【讨论】: