为了账号安全,请及时绑定邮箱和手机立即绑定

通过 POST 数组(Ajax)

通过 POST 数组(Ajax)

HUWWW 2021-06-29 13:01:45
好吧,这似乎是最直接的事情,但我真的不知道为什么要这样做,也不知道其他人有这个问题。这是我的问题,我像这样发送 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 datavar 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    });  }});
查看完整描述

2 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

为您的 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');

  }

});


查看完整回答
反对 回复 2021-07-01
?
杨魅力

TA贡献1811条经验 获得超6个赞

假设这是您要发布的数组列表。

object[] Obj = new object[1];

Obj [0] = "value1"

Obj [1] = "Value2"

Obj [3] = {"CollectionValue1, CollectionValue2"}


$.ajax({

  url: '../Controller/MethodName',

  type: 'post',

  datatype: 'json',

  async: false,

  contentType: "application/json; charset=utf-8",

  data: JSON.stringify({ ControllerParameterName: Obj }), <!-- Obj is your Array -->

  success: function (data) {

    alert(data.Response);

  }

});


查看完整回答
反对 回复 2021-07-01
  • 2 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信