如何ajax()发布多个JSON对象

时间:2015-09-04 15:17:21

标签: javascript jquery ajax json

我目前正在进行$.getJSON()调用,该调用从一个特定网址获取JSON字符串。简化的代码是这样的,它工作正常:

$.getJSON("myURL",function(data){
    var receivedJSON = data;
});

JSON数据如下所示:

[{"id":1,"name":"jerry"},{"id":2,"name":"tom"}]

现在,在我的程序中,我有一个用户输入的表,当用户点击提交时,它会进行ajax调用并将用户输入序列化为json数据并传递给后面-end,简化的html代码是这样的:

<form>
    <table>
        <tbody>
            <tr>
                <td><input type="text"/></td>
                <td><input type="text"/></td>
            </tr>
        </tbody>
    </table>
    <button type="submit">Submit</button>
</form>

处理抓取用户输入数据的javascript是这样的:

function() {
var tableObj = $('table tbody tr').map(function(i) {
                                       var row = {};
                                       $(this).find('td').each(function(i){
                                        var rowName = header[i];
                                        row[rowName] =$(this).find("input").val();
                                   });
                return row;
                }).get();

因此var tableObj包含需要传递到后端的userInput中的数据,并且它正在运行。

处理将用户输入数据从表传递到后端的ajax函数的工作版本是这样的:

$.ajax({
        url : "myPOST_URL",
        type : 'POST',
        data : JSON.stringify(tableObj),
        dataType : "json",
        contentType : 'application/json; charset=utf-8',
 }); //end ajax

现在,我的问题是,如果我不仅要通过tableObj发布.ajax数据,还要包含我从json收到的$.getJSON数据(在这个例子中它是:var receivedJSON),我该怎么做才能实现这个目标?

1 个答案:

答案 0 :(得分:0)

&#13;
&#13;
$(function(){
   $.getJSON("myURL",function(data){
      $.post("myPOST_URL",{receivedJSON: data, formData: $("#formular").serializeArray()});
   });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="formular">
    <input type="text" name="field1">
    <input type="text" name="field2">
</form>
&#13;
&#13;
&#13;