通过 POST 数组(Ajax)

好吧,这似乎是最直接的事情,但我真的不知道为什么要这样做,也不知道其他人有这个问题。


这是我的问题,我像这样发送 POST 请求;


  $.ajax({

      type: "POST",

      url: '/user/sell',

      data: data,

      success: function(data) {

        console.log('Call was successful');

      }

    });

在数据对象中有一个名为 的数组items。当我记录数据对象时它很好,就像它应该的那样,但是当我在我的快速函数中记录数据对象时,items数组items[]无缘无故地更改为..


节点


'items[]': '15716345'

JS(浏览器)


items: [15716345]

知道这里发生了什么吗?


下面是代码的完整版本。 整个区块(前端) // 验证地址 if($('.block.payment .wrapper input:eq(0)').val() !== $('.block.payment .wrapper input: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');

  }

});

后端


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

    });

  }

});


HUWWW
浏览 105回答 2
2回答

慕沐林林

为您的 expressJS 应用程序的请求设置JSON正文解析器中间件。const bodyParser = require('body-parser');app.use(bodyParser.json())并且在 AJAX 请求中,使contentType成为application/json而不是application/x-www-form-urlencoded; charset=UTF-8'.$.ajax({  contentType: 'application/json',  type: "POST",  url: '/user/sell',  data: data,  success: function(data) {    console.log('Call was successful');  }});

杨魅力

假设这是您要发布的数组列表。object[] Obj = new object[1];Obj [0] = "value1"Obj [1] = "Value2"Obj [3] = {"CollectionValue1, CollectionValue2"}$.ajax({&nbsp; url: '../Controller/MethodName',&nbsp; type: 'post',&nbsp; datatype: 'json',&nbsp; async: false,&nbsp; contentType: "application/json; charset=utf-8",&nbsp; data: JSON.stringify({ ControllerParameterName: Obj }), <!-- Obj is your Array -->&nbsp; success: function (data) {&nbsp; &nbsp; alert(data.Response);&nbsp; }});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript