Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajax url选项可以接受url数组而不是一个url吗_Javascript_Jquery_Ajax_Arrays_Json - Fatal编程技术网

Javascript ajax url选项可以接受url数组而不是一个url吗

Javascript ajax url选项可以接受url数组而不是一个url吗,javascript,jquery,ajax,arrays,json,Javascript,Jquery,Ajax,Arrays,Json,如何从json URL数组中获取数据并将其内容存储在数组中 <script type="text/javascript"> urls = ["https://spreadsheets.google.com/feeds/list/1RsiDuydBBHyu4OBjlxq1YH6yT3qcJDMB6-YKU-xxd_k/od6/public/basic?hl=en_US&alt=json","https://spreadsheets.google.com/feeds/li

如何从json URL数组中获取数据并将其内容存储在数组中

<script type="text/javascript">
    urls = ["https://spreadsheets.google.com/feeds/list/1RsiDuydBBHyu4OBjlxq1YH6yT3qcJDMB6-YKU-xxd_k/od6/public/basic?hl=en_US&alt=json","https://spreadsheets.google.com/feeds/list/1Pk4KnjBtYsIJF65ZQFEdBLqPufPK-HSFqhZvmxjZD_E/od6/public/basic?hl=en_US&alt=json"];
    local = {};
       $.ajax({
          url: urls,
          cache: false,
          context: local,
          dataType: 'jsonp',
          success: function(data){
            console.log(data);
          }

       });
    </script>

URL=[”https://spreadsheets.google.com/feeds/list/1RsiDuydBBHyu4OBjlxq1YH6yT3qcJDMB6-YKU-xxd_k/od6/public/basic?hl=en_US&alt=json","https://spreadsheets.google.com/feeds/list/1Pk4KnjBtYsIJF65ZQFEdBLqPufPK-HSFqhZvmxjZD_E/od6/public/basic?hl=en_US&alt=json"];
局部={};
$.ajax({
url:url,
cache:false,
背景:当地,
数据类型:“jsonp”,
成功:功能(数据){
控制台日志(数据);
}
});
console.log方法不返回任何数据,也不返回错误。如何从我使用过的两个URL中获取数据

数组将被转换为字符串,而字符串不是您想要的任何URL,因此通常会出现404错误(您不会看到这个错误,因为您没有错误处理程序(我认为在JSONP请求上检测错误可能会有问题))

如果您想在URL数组上循环并对每个URL发出Ajax请求,那么您必须自己编写循环,并在每次循环时调用
$.Ajax

你可能想考虑在成功函数中使用一个迭代器,而不是使用一个简单的for循环,这样就不会试图并行地释放大量请求。p> 没有

数组将被转换为字符串,而字符串不是您想要的任何URL,因此通常会出现404错误(您不会看到这个错误,因为您没有错误处理程序(我认为在JSONP请求上检测错误可能会有问题))

如果您想在URL数组上循环并对每个URL发出Ajax请求,那么您必须自己编写循环,并在每次循环时调用
$.Ajax


你可能想考虑在成功函数中使用一个迭代器,而不是使用一个简单的for循环,这样就不会试图并行地释放大量请求。p> 默认情况下,jQuery对此没有重载,但您可以使用承诺并对数组中的每个URL执行一个AJAX请求来实现同样的效果:

var urls = ["https://spreadsheets.google.com/feeds/list/1RsiDuydBBHyu4OBjlxq1YH6yT3qcJDMB6-YKU-xxd_k/od6/public/basic?hl=en_US&alt=json","https://spreadsheets.google.com/feeds/list/1Pk4KnjBtYsIJF65ZQFEdBLqPufPK-HSFqhZvmxjZD_E/od6/public/basic?hl=en_US&alt=json"];
var $deferredArray = $.map(urls, function(url) {
       console.log("here");
       return $.ajax({
              url: url,
              cache: false,
              success: function(data){
                console.log("Success");
              }
       });
    });
$.when.apply($, $deferredArray).then(function() {
    console.log('All done');
});

默认情况下,jQuery对此没有重载,但您可以使用承诺并对数组中的每个URL执行一个AJAX请求来实现同样的效果:

var urls = ["https://spreadsheets.google.com/feeds/list/1RsiDuydBBHyu4OBjlxq1YH6yT3qcJDMB6-YKU-xxd_k/od6/public/basic?hl=en_US&alt=json","https://spreadsheets.google.com/feeds/list/1Pk4KnjBtYsIJF65ZQFEdBLqPufPK-HSFqhZvmxjZD_E/od6/public/basic?hl=en_US&alt=json"];
var $deferredArray = $.map(urls, function(url) {
       console.log("here");
       return $.ajax({
              url: url,
              cache: false,
              success: function(data){
                console.log("Success");
              }
       });
    });
$.when.apply($, $deferredArray).then(function() {
    console.log('All done');
});
你可以用*来做这个。它允许您传入一系列承诺,并在它们都完成时运行函数。比如说:

var urlArray = [url, url2];
var promises = [];

function returnPromise(url) {
  return $.ajax({
    url: url,
    cache: false,
    context: local,
    dataType: 'jsonp'
  });
}

// push each promise into your promises array
for (var i = 0, l = urlArray; i < l; i++) {
  promises.push(returnPromise(urlArray[i]));
}

// pass the promises array into $.when
$.when.apply(null, promises).then(function (data1, data2) {
  // do something with the data
});
var-urlArray=[url,url2];
var承诺=[];
函数返回承诺(url){
返回$.ajax({
url:url,
cache:false,
背景:当地,
数据类型:“jsonp”
});
}
//将每个承诺放入承诺数组中
for(var i=0,l=urlArray;i
*在每个JS函数上都可用,并允许您使用参数数组而不是列表来调用它。

您可以使用*。它允许您传入一系列承诺,并在它们都完成时运行函数。比如说:

var urlArray = [url, url2];
var promises = [];

function returnPromise(url) {
  return $.ajax({
    url: url,
    cache: false,
    context: local,
    dataType: 'jsonp'
  });
}

// push each promise into your promises array
for (var i = 0, l = urlArray; i < l; i++) {
  promises.push(returnPromise(urlArray[i]));
}

// pass the promises array into $.when
$.when.apply(null, promises).then(function (data1, data2) {
  // do something with the data
});
var-urlArray=[url,url2];
var承诺=[];
函数返回承诺(url){
返回$.ajax({
url:url,
cache:false,
背景:当地,
数据类型:“jsonp”
});
}
//将每个承诺放入承诺数组中
for(var i=0,l=urlArray;i

*在每个JS函数上都可用,并允许您使用参数数组而不是列表来调用它。

ajax不是这样工作的。如果需要将相同的数据发送到不同的url,则需要对每个url发出ajax请求。也就是说,如果您也在构建后端,那么可能有更好的方法,将数据操作留在后端,而不是将相同的数据发送到多个路由。ajax不是这样工作的。如果需要将相同的数据发送到不同的url,则需要对每个url发出ajax请求。也就是说,如果您也在构建后端,然后可能有更好的方法,将数据操作留在后端,而不是将相同的数据发送到多个路由。-1对于不正确的
全部完成
-当
存在时,一旦函数传递到
,承诺就会解决。@Bergi愚蠢的互联网教程将我引向错误的道路。我必须找时间看书:(我更新了答案,但实际上它和安迪现在的答案一样。它使用
map
而不是循环,这使它更好:-)-1对于不正确的
全部完成
-当
存在时,一旦函数传递到
,承诺就会解决。@Bergi愚蠢的互联网教程将我引向错误的道路。我必须找时间看书:(我更新了答案,但实际上它和安迪现在的答案一样。它使用
map
而不是循环,这使它更好:-)