jQuery ajaxSetup beforeSend没有在IE8中执行

时间:2011-04-28 10:33:50

标签: jquery ajax internet-explorer-8

我的项目使用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);
    }
});

任何线索?

谢谢! 尼尔

1 个答案:

答案 0 :(得分:2)

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

如果有人有更好的答案/解决方法,我很乐意删除这个,并将其标记为正确。

相关问题