javascript SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
Primary tabs
Текст ошибки
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
Сохраняем данные формы, чтобы передать их с помощью ajax.
Ошибка появляется при попытке передать из формы float.
$('.create_sale_payment_notification').click(function (e) { e.preventDefault(); e.stopPropagation(); let formData = new FormData(); formData.set('payment_date', $('.payment_date').val()); // вот в этой строке ошибка formData.set('sum', $('.payment_sum').val()); formData.set('number', $('.order_number').val()); $.ajax({ url: /url, type: 'POST', data: formData, async: true, success: function () { // ... }, error: function (message) { // ... }, cache: false, contentType: false, processData: false }); });
Решение
- В json не упаковывается float. Совсем.
Выход - переводить float в string или integer. В моём случае выберем integer, т.к. число - денежная сумма и всё равно нам нужно будет её перевести в копейки. Если знаков после запятой больше двух, их округляем с помощью. Math.floor().formData.set('sum', Math.floor($('.payment_sum').val() * 100));
- Также получим ошибку, пытаясь умножить $('.payment_sum').val() * 100, если пользователь использует в качестве разделителя запятую. Необходимо заменить её на точку:
formData.set('sum', $('.payment_sum').val().replace(",", ".") * 100);
Источники
- Log in to post comments
- 2350 reads