Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.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请求数组在.apply().done()时从未进入_Javascript_Jquery_Ajax_Jquery Deferred - Fatal编程技术网

Javascript 延迟的ajax请求数组在.apply().done()时从未进入

Javascript 延迟的ajax请求数组在.apply().done()时从未进入,javascript,jquery,ajax,jquery-deferred,Javascript,Jquery,Ajax,Jquery Deferred,我有以下代码来处理几个ajax请求,并等待它们全部处理并在Sitewhen.apply中组合它们的结果: var requestsArray = []; var url = "http://..."; console.log("url: " + url); var req1 = $.ajax({ type: "GET", url: url, dataType : "xml" }); req1.done(function (resp1) { $(resp1)

我有以下代码来处理几个ajax请求,并等待它们全部处理并在Site
when.apply
中组合它们的结果:

var requestsArray = [];

var url = "http://...";

console.log("url: " + url);

var req1 = $.ajax({
    type: "GET",
    url: url,
    dataType : "xml"
});

req1.done(function (resp1) {
    $(resp1).find('interest').each(function() {

        var interest_id = $(this).find('id').text();
        var interest_name = $(this).find('name').text();

        var request = $.ajax({
              type:"GET",
              URL: "http://en.wikipedia.org/w/api.php?action=parse&format=json&page="+ interest_name + "&redirects&prop=text",
              dataType: "jsonp"
        });
        requestsArray.push(request);

    });

    $.when.apply(null, requestsArray).done(function () {
        console.log(arguments);
         // You can collect the responses in the same order from `arguments`
        var responses = arguments;
    });

});
为什么它从不在
$.when.apply
中输入,并且它不打印任何
控制台.log(参数)

你把单词拼错了。它必须是
url
,而不是
url


如果没有给出
url
,它将获取当前页面,该页面不是jsonp格式,这将导致parseerror,它不会调用
done
回调,而是调用您没有传递的回调。

在第一次查看时,不会在
.done()
回调中出现
参数
,例如,
.done(函数(数据){})//数据:
console.log(arguments)
的arguments
这不是问题,仍然没有输入。您需要自己进行调试。检查浏览器错误日志中的脚本错误。为ajax调用设置错误处理程序,并检查是否有返回的错误。设置几个断点(或插入
console.log()
statements)并查看它在停止之前的距离。这是一个基本的调试,可以找出它在哪里停止或者为什么停止。关于从哪里开始,有什么建议吗?@João请参阅帖子。感谢wikimedia url出现错误,
未捕获的语法错误:意外标记:
——尽管url上的数据在导航到该文档时似乎是有效的json;或
'Access-Control-Allow-Origin'
问题。在控制台上试过了,JSFIDLE?变通办法;mediawiki url查询字符串中的问题?谢谢你的光!
$.ajax({
    type:"GET",
    URL: "http://en.wikipedia.org/w/api.php?action=parse&format=json&page=" + 
//  ^^^
         interest_name + "&redirects&prop=text",
    dataType: "jsonp"
});