jQuery ajaxSetup beforeSend没有在IE8中执行

我的项目使用jQuery 1.4.2。 我有一些安全信息,我添加到我的AJAX标头…我这样做的方式是使用$ .ajaxSetup(),并设置一个beforeSend函数。

$(document).ready(function (e) { $.ajaxSetup({ global: true, beforeSend: function (jqXHR, settings) { var verificationToken = 'some encrypted string'; jqXHR.setRequestHeader("X-Request-Verification-Token", verificationToken); } }); }) 

据我所知,每当我调用$ .ajax()时都会执行,对吧? 它适用于Chrome,Firefox,IE9等,但偶尔也不适用于IE7 / 8。

这就是我所说的:

 $.ajax({ type: "POST", async: true, data: 'somedata', url: "/some/url", success: function (data) { alert("success"); }, error: function (data) { alert("error"); } }); 

我找到了一个解决方法,即将beforeSend直接添加到$ .ajax()调用(下面),但我真的想全局执行此操作,而不是必须将其添加到代码中的多个位置。 。

 $.ajax({ type: "POST", async: true, data: 'somedata', url: "/some/url", success: function (data) { alert("success"); }, error: function (data) { alert("error"); } beforeSend: function (jqXHR, settings) { var verificationToken = 'some encrypted string'; jqXHR.setRequestHeader("X-Request-Verification-Token", verificationToken); } }); 

有什么线索吗?

谢谢! 尼尔

好的,在没有任何其他答案的情况下,我特此声明这是JQuery 1.4.x中的一个错误。 解决方案是升级到更高版本的JQuery,这对我来说是不可能的。

如果有人有任何更好的答案/修复,我会很乐意删除这个,并将其标记为正确。