Не отправляются данные аякс запроса в PHP

Я пытаюсь отправить данные в PHP с помощью ajax запроса. Вот мой js файл

var buttons = document.getElementsByClassName('buy_btn');
console.log(buttons);
var titles = document.getElementsByClassName('product__title');
var descriptions = document.getElementsByClassName('product__description');
var prices = document.getElementsByClassName('product__price');
for (let i = 0; i < buttons.length; i++) {
    buttons[i].onclick = function () {
        var title = titles[i].innerHTML;
        var description = descriptions[i].innerHTML;
        var price = prices[i].innerHTML;
        $.ajax({
            type: "POST",
            url: "php/buy_product.php",
            data: { 'Title': title, 'Description': description, 'Price': price },
            success: function () {
                console.log("Success");
            },
            error: function () {
                console.log("Error");
            }
        })
    }
}

В PHP коде я хочу взять эти данные:

$title = $_POST['Title'];
$description = $_POST['Description'];
$price = $_POST['Price'];

Однако он не видит эти данные. При выводе массива POST этих данных также нет. URL правильный, я проверял. Все данные верны. Функция success ajax запроса срабатывает. Спасибо за любую помощь


Ответы (1 шт):

Автор решения: Константин Бронштейн

Попробуйте использовать let formData = new FormData(); и enctype: 'multipart/form-data'как здесь:

buttons[i].onclick = function () {
    var title = titles[i].innerHTML;
    var description = descriptions[i].innerHTML;
    var price = prices[i].innerHTML;
    var formData = new FormData();
    formData.append('Title',title);
    formData.append('Description',description);
    formData.append('Price',price );
    $.ajax({
        type: "POST",
        url: "php/buy_product.php",
        enctype: 'multipart/form-data',
        data: formData,
        success: function () {
            console.log("Success");
        },
        error: function () {
            console.log("Error");
        }
    })
}
→ Ссылка