Осваивая джаваскрипт, особенно начиная вникать в то КАК оно всё работает и дышит, часто натыкаешься на такие особенности, которых просто не ожидаешь. Проблема браузера это или же проблема надостаточной информативности jquery при выводе ошибок, но обходятся такие особенности только после продолжительного гугления и научного тыкания в небо.
Сегодня речь пойдёт об ослике и ajax от jquery.
Приступим сразу к коду. Так как мы битрикс-ориентированы, то это будет типа код добавления товара в корзину. Сразу подпишем вывод в консоль ошибок.
Итак, на выводе имеем xhr.status равный нулю и error.message = Invalid argument После некоторого гугления и многочисленных попыток найти похожий случай на http://stackoverflow.com находится-таки решение. Очень простое и неявное. Оказывается IE не любит, когда ему пустой урл
Приступим сразу к коду. Так как мы битрикс-ориентированы, то это будет типа код добавления товара в корзину. Сразу подпишем вывод в консоль ошибок.
var data = {};
data.id = 12345;
data.quantity = 2;
data.action = 'BUY';
data.actionADD2BASKET = 'Y';
$.ajax({
type: 'POST',
url: '',
data: data,
error: function(xhr, status, error)
{
console.log(xhr);
console.log(status);
console.log(error);
},
success:{/* типа успешно добавлен товар, пляшем и танцуем */}
async: false,
});
Радуемся до тех пор, пока от заказчика не приходит тикет на то, что в IE товары не добавляются в корзину. Работает везде, кроме IE. Рвём на себе волосы, слушаем по случаю для вдохновения песенкуИтак, на выводе имеем xhr.status равный нулю и error.message = Invalid argument После некоторого гугления и многочисленных попыток найти похожий случай на http://stackoverflow.com находится-таки решение. Очень простое и неявное. Оказывается IE не любит, когда ему пустой урл
url: ''дают. Ему надо, чтобы там хотя бы что-то было! Ставим туда слеш
url: '/'и сдаём тикет.
Комментариев нет:
Отправить комментарий