2015-08-18 105 views
0

我在應用程序中添加了一個CSRF令牌。正常形式工作正常,但現在我必須調整所有的Ajax請求。發送Ajax請求之前的事件(向請求添加一些數據)

在不同的地方有很多ajax請求,這就是爲什麼我尋找一個簡單的方法來解決這個問題。

是否有某種事件發生在發送ajax請求之前觸發的,因此我可以將我的CSRF令牌添加到請求中?

+0

http://api.jquery.com/jquery.ajaxprefilter/ – epascarello

+0

您可能需要閱讀此文章(https://learn.jquery.com/ajax/ajax-and-forms/)。 – MaxZoom

回答

1

.ajaxSend()

您可以使用ajaxSend對於這一點,它可以讓你你做的Ajax請求之前更改URL。

$(document).ajaxSend(function(event, jqxhr, settings) { 
    if (settings.url == "ajax/test.html") { 
    $(".log").text("Triggered ajaxSend handler."); 
    } 
}); 
1

除了在註釋中列出的文章中提到的方法也有 beforeSend(..)功能之前AJAX請求發送時調用。
請參閱documentation瞭解更多詳情。

0

可以綁定事件偵聽器針對不同的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