一尘不染

jQuery ajaxSetup beforeSend未在IE8中执行

ajax

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

有什么线索吗?

谢谢!尼尔


阅读 346

收藏
2020-07-26

共1个答案

一尘不染

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

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

2020-07-26