使用ajax和for循环

时间:2017-01-17 00:06:23

标签: javascript jquery json ajax

我正在处理一个代码,我可以使用JSONAJAX在数组内逐个推送for loop个对象。这里的代码只是我一直在做的一个粗略的例子。我似乎无法将对象推送到API JSON array

var lms_json    = <?php echo json_encode($json_data); ?>;
var jobjects = JSON.parse(lms_json);
var data = jobjects[0];

for ( i = 0; i < jobjects.length; i++ ) {
    var data = jobjects[i];


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

    })



}

2 个答案:

答案 0 :(得分:1)

您需要使用JSON.stringify来序列化您的JSON对象。另外,指定content-type以使服务器期望JSON数据。这可能有效:

$.ajax({
    url: url,
    type: "POST",
    data: JSON.stringify(data),
    contentType: "application/json",
    complete: callback
});

答案 1 :(得分:1)

我认为您的问题是AJAX是异步过程,因此您可以执行以下操作来正确执行此操作:

var lms_json    = <?php echo json_encode($json_data); ?>;
var jobjects = JSON.parse(lms_json);
var i=0;
function makeAjax(url, objs){
   var data = objs[i];
   i++;
   $.ajax({
      type     : 'POST',
      url      : url,
      data     : data,
      dataType : 'json',
      success  : function() {
          console.log(success);
          makeAjax();
      },
      error    : function(error) {
          console.log('Error')
      }

   })
}
makeAjax(url,jobjects);

所以在每次成功回调运行后,它将运行下一个。所以这将是同步过程。

我希望它有所帮助。