Как я могу отправить запрос Ajax

Я впервые имею дело с запросами AJAX, и у меня возникла проблема с написанным мной кодом.

Данные API выглядят следующим образом:

"data": {
    "id": 5,
    "name": "Big Mac beef burger",
    "description": "Big Mac beef burger with tomato slices and mayoneez",
    "image": "http://spoon.mtech-ins.com/uploads/products/big_mac.jpg",
    "price": 100.52,
    "basic_price": true,
    "provider_name": "Mcdonald's Restaurant egypt",
    "has_offer": true,
    "discount": 20,
    "discount_price": 80.416,
    "favorite": false,
    "product_additions": [
        {
            "id": 1,
            "name": "Size",
            "required": true,
            "multiple": false,
            "product_addition_items": [
                {
                    "id": 1,
                    "name": "Small",
                    "price": 20
                },
                {
                    "id": 2,
                    "name": "Medium",
                    "price": 50
                }
            ]
        }
    ]
}

Я хочу только добавить "Product_addition_items" в свой запрос, вложенный из "product_additions".

Мои две проблемы:

  1. Как передать данные в этот глубоко вложенный массив (product_addition_items)

  2. Как передать массив в теле запроса?

Это код, который я написал:

$.ajax({
      type: 'POST',
      url: `http://spoon.mtech-ins.com/api/admin/v1/addAddition/5`,
      headers: {
        Authorization:
          'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9zcG9vbi5tdGVjaC1pbnMuY29tXC9hcGlcL2FkbWluXC92MVwvdXNlcnNMb2dpbiIsImlhdCI6MTUyOTU5NzU3NywiZXhwIjoxNTM3MzczNTc3LCJuYmYiOjE1Mjk1OTc1NzcsImp0aSI6IkY1azBEQkk1MEhrdm5saHEiLCJzdWIiOjE0OCwicHJ2IjoiODdlMGFmMWVmOWZkMTU4MTJmZGVjOTcxNTNhMTRlMGIwNDc1NDZhYSJ9.XKNfm6cxBQnfKaEDMxsVK0vTETzIp6uisA0UwB0Q2-Q'
      },
      data: {
        name: product.name,
        required: product.required,
        multiple: product.multiple,
        options: options
      },
      success: data => {
        console.info(data);
      },
      error: err => console.info(err)
    });

И я уверен, что это неправильно, так как это не сработало, но я точно не знаю, что делать

Спасибо :)

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
46
2

Ответы 2

Вы должны использовать ключ method вместо type. Попробуй это

$.ajax({
  method: 'POST',
  url: `http://spoon.mtech-ins.com/api/admin/v1/addAddition/5`,
  data: {
    name: product.name,
    required: product.required,
    multiple: product.multiple,
    options: options
  },
  success: function(data, status, xhr) {
    console.info(data);
  },
  error: function(err) {
    console.info(err);
  }
});

Чтобы передать массив в тело запроса, вам просто нужно вызвать функцию с параметром ответа. параметр ответа получает любой объект или значение, которое функция получает при успешном запросе.

success: function (data) { // here data is the response parameter
                response($.map(data, function (eachData) {  //map is used to iterate each value if it contains a list or array
                    // do whatever you want to do with each data
                ))
            }

Другие вопросы по теме