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