发送数组发布ajax

时间:2017-01-26 06:01:56

标签: javascript ajax post

我需要以这种格式发送mi post

{
  "elements" : ["elem1", "elem2","elem3" ]  
}

我创建了这个数组:

var miElem=["elem1", "elem2","elem3" ]  

$.post({
          url: 'url',
          data: {"elements" : miElem} ,
          dataType: 'json',

          success: function(data) {
            console.log(data)

          }.bind(this),
          error: function(xhr, status, err) {
          console.log(err)
          }.bind(this)
        });

但不起作用,数据发送良好,但格式不正确

3 个答案:

答案 0 :(得分:1)

像这样使用$.ajax()。使用$.post不正确。检查$.post的语法。https://api.jquery.com/jquery.post/

var miElem=["elem1", "elem2","elem3"];  

$.ajax({
          url: 'url',//give your url here
          type:'POST',
          data: {elements : miElem} ,
          dataType: 'json',
          success: function(data) {
            alert('success');//test for successful ajax request
            console.log(data);

          },
          error: function(xhr, status, err) {
          alert('error');//test for unsuccessful ajax request
          console.log(err);
          }
       });

答案 1 :(得分:0)

您应该使用$.ajax代替$.post。 在$.ajax中不要使用成功和错误参数。使用.done().fail(),..(http://api.jquery.com/jquery.ajax/)它更全面。如果您想使用promise,可以使用.then()

数据类型参数用于响应类型。

答案 2 :(得分:0)

您的请求失败,因为

  1. 您向$.post()方法传递了错误的参数。
  2. 如果您打算使用type:'POST',则未设置$.ajax
  3. $.post()执行以下操作:

    $.post('url', {elements: miElem}).done(function(data) {
      console.log(data);
    }).fail(function (error) 
      console.error(error);
    });
    

    $.ajax执行以下操作:

    $.ajax({
      type: 'POST',
      url: 'url',
      data: {elements: miElem},
      success: function (data) {
        console.log(data);
      },
      dataType: 'json'
    });