#jquery #ajax #internet-explorer-8
#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);
}
});
Есть какие-нибудь подсказки?
Спасибо! Neil
Комментарии:
1. возможно обновить версию jquery? проблема здесь в версии Jquery 1.4, использующей XMLHttpRequest
2. Сложно обновить jQuery… Он довольно часто используется на сайте, и повторное тестирование всего может быть затруднительным. Есть ли какие-либо серьезные изменения в API между 1.4.x и 1.5?
3. Не уверен, собираюсь дочитать до конца, братан.
4. Я знаю, что это устарело, но являются ли ваш вызов ajax и ajaxSetup вызовом в одной и той же оболочке document ready?
Ответ №1:
Хорошо, в отсутствие какого-либо другого ответа, настоящим я объявляю, что это ошибка в jQuery 1.4.x. Решение заключается в обновлении до более поздней версии jQuery, что, к сожалению, для меня невозможно.
Если у кого-нибудь есть лучший ответ / исправление, я с радостью удалю этот и пометлю их как правильные.
Комментарии:
1. Это не обновление jQuery. Я вижу то же самое в jQuery 1.8
2. Я получаю это в 1.10.3
3. Я нигде не смог найти jquery версии v1.10.3. Но для версии v1.10.2 это исправлено. но странно, что для версии v1.12.4 у меня это не сработало