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,这对我来说是不可能的。
如果有人有任何更好的答案/修复,我会很乐意删除这个,并将其标记为正确。