Осваивая джаваскрипт, особенно начиная вникать в то КАК оно всё работает и дышит, часто натыкаешься на такие особенности, которых просто не ожидаешь. Проблема браузера это или же проблема надостаточной информативности 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: '/'и сдаём тикет.
Комментариев нет:
Отправить комментарий