AJAX获取请求JSONP parsererror:readyState“:4,”status“:200,”statusText“:”load“}]

时间:2017-01-16 03:55:05

标签: javascript jquery ajax

Hey Im目前正尝试使用延迟的when和done函数进行多个ajax请求调用。但是,在一些请求中我得到解析错误:readyState“:4,”status“:200,”statusText“:”load“。

我试图查看与我的问题类似的其他问题,并尝试过各种方式的调试,但都做得不够。

这是我的ajax请求电话:

    $.ajax({
      'url' : message.action,
      'data' : parameterMap,
      'dataType' : 'jsonp',
      'async' : 'true',
      'jsonpCallback' : 'cb',
      'cache': true
    })
    .done(function(data,textStatus, jqXHR) {
      console.log("Success: " + textStatus);

      //inserting data to map
      var mapIndex = i.toString();
      yelpResults = yelpResults.set(mapIndex, JSON.stringify(jqXHR));
    }) //end of done
    .fail(function(jqXHR, textStatus, errorThrown) {
        console.log('error[' + errorThrown + '], status[' + textStatus + '], jqXHR[]');
    })

  );

将ajax请求推送到列表中,该列表将返回并在此函数中使用:

var generateBusiness = function(term,subPointResults){
  var promises = yelpSearch(term, subPointResults);
  console.log("Generate business is being called");
  $.when.apply(null, promises).done(function(){
    // call
    console.log("All requests done");
    // findPriorityResuts(subPointResults);
    yelpRequestCounter = 0;
  });
}

我总共发出10个请求,其中大约5个成功加载,其他请求因解析错误而失败。

任何建议将不胜感激! :)

编辑:我有这个工作,就每个请求被成功解析而言,但是我以1秒的间隔调用每个请求。并希望找到一种不同的,平行的方式。

所以我知道它不是即将发布的数据。

谢谢!

1 个答案:

答案 0 :(得分:1)

由于jsonp请求实际上是脚本请求,而不是ajax请求,因此对多个请求使用相同的回调并不好。

删除router-outlet并让jQuery动态创建,并且重要的是,跟踪唯一的回调