Javascript ajax url选项可以接受url数组而不是一个url吗
如何从json 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
<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
而不是循环,这使它更好:-)