Я впервые имею дело с запросами 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".
Мои две проблемы:
Как передать данные в этот глубоко вложенный массив (product_addition_items)
Как передать массив в теле запроса?
Это код, который я написал:
$.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)
});
И я уверен, что это неправильно, так как это не сработало, но я точно не знаю, что делать
Спасибо :)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны использовать ключ 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
))
}