我在應用程序中添加了一個CSRF令牌。正常形式工作正常,但現在我必須調整所有的Ajax請求。發送Ajax請求之前的事件(向請求添加一些數據)
在不同的地方有很多ajax請求,這就是爲什麼我尋找一個簡單的方法來解決這個問題。
是否有某種事件發生在發送ajax請求之前觸發的,因此我可以將我的CSRF令牌添加到請求中?
我在應用程序中添加了一個CSRF令牌。正常形式工作正常,但現在我必須調整所有的Ajax請求。發送Ajax請求之前的事件(向請求添加一些數據)
在不同的地方有很多ajax請求,這就是爲什麼我尋找一個簡單的方法來解決這個問題。
是否有某種事件發生在發送ajax請求之前觸發的,因此我可以將我的CSRF令牌添加到請求中?
您可以使用ajaxSend對於這一點,它可以讓你你做的Ajax請求之前更改URL。
$(document).ajaxSend(function(event, jqxhr, settings) {
if (settings.url == "ajax/test.html") {
$(".log").text("Triggered ajaxSend handler.");
}
});
除了在註釋中列出的文章中提到的方法也有 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 。
http://api.jquery.com/jquery.ajaxprefilter/ – epascarello
您可能需要閱讀此文章(https://learn.jquery.com/ajax/ajax-and-forms/)。 – MaxZoom