Хорошо, похоже, это самая прямолинейная вещь, но я действительно понятия не имею, почему он это делает, и не нахожу кого-либо еще с этой проблемой.
Вот моя проблема, я отправляю запрос POSTвот так;
$.ajax({
type: "POST",
url: '/user/sell',
data: data,
success: function(data) {
console.log('Call was successful');
}
});
В объекте данных есть массив с именем items
.Когда я регистрирую объект данных, все нормально, как и должно быть, однако когда я регистрирую объект данных в моей экспресс-функции, массив items
меняется на items[]
без причины ..
NodeJS
'items[]': '15716345'
JS (Браузер)
items: [15716345]
Есть идеи, что здесь происходит?
Ниже приведена полная версия кода. Весь блок (внешний интерфейс) // Проверка адреса if ($ ('. Block.payment .wrapper input: eq (0)'). Val ()! == $ ('. Block.payment .wrapperinput: eq (1) '). val ()) {return error (' Поля не совпадают ');}
// Get known data
var type = $('.body.inventory .methods .method.selected').data('type'),
items = [];
var data = {
type,
address: $('.block.payment .wrapper input:eq(0)').val()
}
if(type === 'steam'){
var app = $('.body.inventory .sub-methods .method.selected').data('app');
data['app'] = app;
$('.body.inventory .item[data-app="'+app+'"].selected').each(function(){
items.push($(this).data('id'));
});
}else{
$('.body.inventory .item[data-type="'+type+'"].selected').each(function(){
items.push($(this).data('id'));
});
}
data['items'] = items;
// Execute route or smt
$.ajax({
type: "POST",
url: '/user/sell',
data: data,
success: function(data) {
console.log('Call was successful');
}
});
Backend
router.post('/sell', function(req, res, next) {
try {
console.log(req.body);
res.send({
success: 1
});
} catch(e) {
if(e) console.log(e);
res.send({
success: 0,
error: e
});
}
});