Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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 For循环中的XMLHttpRequest_Javascript_For Loop_Xmlhttprequest - Fatal编程技术网

Javascript For循环中的XMLHttpRequest

Javascript For循环中的XMLHttpRequest,javascript,for-loop,xmlhttprequest,Javascript,For Loop,Xmlhttprequest,这段代码应该在多个网页中循环,找到每个网页上的所有链接,并在控制台中列出它们,但它似乎只列出了最后一个网页(fakeURL.com/735)中的链接 如何获取console.log(url)为每个迭代工作,而不仅仅是最后一个迭代(当i=735时) 用于(i=0;i您的问题是,您正在为所有ajax调用重用相同的xhrs变量。因此,当触发onreadystatechange事件时,一次执行的所有调用都无法找到属于其特定请求的xhrs变量。因此,它们最终都会查看xhrs.readyState我是最后一

这段代码应该在多个网页中循环,找到每个网页上的所有链接,并在控制台中列出它们,但它似乎只列出了最后一个网页(fakeURL.com/735)中的链接

如何获取
console.log(url)为每个迭代工作,而不仅仅是最后一个迭代(当i=735时)


用于(i=0;i您的问题是,您正在为所有ajax调用重用相同的
xhrs
变量。因此,当触发
onreadystatechange
事件时,一次执行的所有调用都无法找到属于其特定请求的
xhrs
变量。因此,它们最终都会查看
xhrs.readyState
我是最后一个请求,所以你只能看到最后一个请求完成

您应该能够切换到使用
来引用生成
onreadystatechange
事件的请求:

for(i = 0; i <= 735; i += 15) {
    var xhrs = new XMLHttpRequest();
    xhrs.open("get", 'http://fakeURL.com/' + i, true);
    xhrs.onreadystatechange = function() 
    {
        if (this.readyState == 4) 
        {
            $(this.responseText).find('a').each(function()
            {           
                var url = $(this).attr('href');
                console.log(url);                                               
            });
        }
    }
    xhrs.send();
}

for(i=0;i)你应该看到:顺便说一句,
$
似乎是jQuery,那么为什么不使用
$.ajax()
?你的代码启动了一大堆ajax调用,然后它们都在稍后完成。你到底有什么问题?@jfriend00我需要
控制台.log(url)
在每次迭代中都会发生。现在它只在最后一次迭代中发生。
for(i = 0; i <= 735; i += 15) {
    var xhrs = new XMLHttpRequest();
    xhrs.open("get", 'http://fakeURL.com/' + i, true);
    xhrs.onreadystatechange = function() 
    {
        if (this.readyState == 4) 
        {
            $(this.responseText).find('a').each(function()
            {           
                var url = $(this).attr('href');
                console.log(url);                                               
            });
        }
    }
    xhrs.send();
}