jQuery ajaxSetup beforeSend не выполняется в IE8 - PullRequest
3 голосов
/ 28 апреля 2011

Мой проект использует 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");
    }
});

IЯ нашел обходной путь, который заключается в добавлении 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);
    }
});

Есть какие-нибудь подсказки?

Спасибо!Neil

1 Ответ

2 голосов
/ 18 мая 2011

Хорошо, в отсутствие какого-либо другого ответа, я объявляю это ошибкой в ​​JQuery 1.4.x.Решение состоит в том, чтобы перейти на более позднюю версию JQuery, что, к сожалению, для меня невозможно.

Если у кого-то есть какой-либо лучший ответ / исправление, я с радостью удалю его и отмечу их как правильные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...