2
我有一個瓦片標準的jsp,它包含在我的應用程序的所有頁面中。我試圖在應用程序的所有Ajax請求中注入一些安全令牌,爲此,我將下面的代碼片段寫入此JSP的頭部元素中。問題是,在大多數情況下,ajax調用會按預期方式被攔截,令牌被注入到數據中。但是在某些情況下,beforesend方法沒有被調用,因此請求中不存在令牌。我不確定爲什麼有些Ajax調用不會被攔截,而有些則是。 以下是代碼片段:Ajax beforesend方法在某些情況下不起作用
$(document).ready(function() {
$.ajaxSetup({
beforeSend: function(xhr, settings) {
var controlId = "<c:out value='${XXXControlIDXXX}' />";
// Injecting CSRF token id into data
if(controlId!=null) {
var csrfData = {
XXXControlIDXXX : controlId
}
settings.data += "&" + $.param(csrfData);
}
}
});
});
'beforeSend'不太可能間歇性失敗。請求中缺少某些數據的可能性更大,或者在執行「$ .ajaxSetup」之前進行AJAX調用的可能性更大。 –
@RaviRanjan雖然標題是相同的,但問題和解決方案與這種情況並不相關。 –
@RoryMcCrossan - 我們如何在$ .ajaxsetup之前調用ajax? – rj4u