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
- 2891 reads