相关疑难解决方法(0)

XMLHttpRequest状态0(responseText为空)

无法使用XMLHttpRequest获取数据(状态0和responseText为空):

xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","http://www.w3schools.com/XML/cd_catalog.xml", true);
xmlhttp.onreadystatechange=function() 
{
  if(xmlhttp.readyState==4)
    alert("status " + xmlhttp.status);
}
xmlhttp.send();

它警告"状态0".

与localhost请求相同的情况(cd_catalog.xml保存为本地文件)

xmlhttp.open("GET","http://localhost/cd_catalog.xml", true);

但是使用localhost IP请求

xmlhttp.open("GET","http://127.0.0.1/cd_catalog.xml", true);

并使用本地文件请求

xmlhttp.open("GET","cd_catalog.xml", true);

一切都好(状态200)

什么可以导致问题(状态= 0)与在线请求?

PS:Live HTTP Headers显示在所有4种情况下一切正常:

  HTTP/1.1 200 OK
  Content-Length: 4742

PS2:VMWare上的Apache本地Web服务器(主机OS Win7,Guest OS Ubuntu,网络适配器 - NAT).浏览器 - Firefox.

javascript ajax xmlhttprequest

94
推荐指数
7
解决办法
20万
查看次数

在for循环中发送post请求

我想循环发送帖子请求.如果我连续发送2个请求,那么只有最后一个请求真正进行了回调.

我做错了什么?

this.assignAUnits = function(){
        var currentIncidentId = this.incident.incidentId;
        for (var i=0; i< this.selectedAvailableUnits.length; i++){
            var unit = this.selectedAvailableUnits[i];
            var unitId = unit.unitId;

            var url = '/incident/' + currentIncidentId + '/assignUnit/' + unitId

            $http.post(url).then(function(response) {
               DOING SOMETHING

            }, function(error) {
                alert(error);
            });          
        }
    };
Run Code Online (Sandbox Code Playgroud)

javascript for-loop http-post angularjs

6
推荐指数
1
解决办法
7349
查看次数

如何处理同时的javascript xmlhttprequests?

可能重复:
将索引从for循环传递给ajax回调函数(javascript)

为了获取一些内容,我一直对将xmlhttprequests制作到不同的服务器感到困惑.这是我写的,但似乎我在某些方面弄错了..

var URL = new Array();
URL[0] = "http://www.example1.com";
URL[1] = "http://www.example2.com";
URL[2] = "http://www.example3.com";
var nRequest = new Array();
for (var i=0; i<3; i++) {
    nRequest[i] = new XMLHttpRequest();
    nRequest[i].open("GET", URL[i], true);
    nRequest[i].onreadystatechange = function (oEvent) {
        if (nRequest[i].readyState === 4) {
            if (nRequest[i].status === 200) {
                console.log(nRequest[i].responseText);
                alert(nRequest[i].responseText);
            } else {
                console.log("Error", nRequest[i].statusText);
            }
        }
    };
    nRequest[i].send(null);
}
Run Code Online (Sandbox Code Playgroud)

在IE10上使用此代码我在控制台上被拒绝访问..

如果我删除数组并使用简单的请求,它按预期运行..

wRequest = new XMLHttpRequest();
wRequest.open("GET", "http://www.example1.com", true);
wRequest.onreadystatechange = function (oEvent) {
    if (wRequest.readyState === 4) …
Run Code Online (Sandbox Code Playgroud)

javascript xmlhttprequest simultaneous-calls

5
推荐指数
1
解决办法
1万
查看次数

处理多个调用异步回调

我正在学习用Node.js的learnyounode.我遇到了问题JUGGLING ASYNC.问题描述如下:
作为命令行参数,您将获得三个URL.您应该http.get()调用从这些URL获取数据,然后按照与参数列表中的顺序相同的顺序打印它们.这是我的代码:

var http = require('http')
var truecount = 0;
var printlist = []
for(var i = 2; i < process.argv.length; i++) {
    http.get(process.argv[i], function(response) {
    var printdata = "";
    response.setEncoding('utf8');
    response.on('data', function(data) {
        printdata += data;
    })
    response.on('end', function() {
        truecount += 1
        printlist.push(printdata)
            if(truecount == 3) {
            printlist.forEach(function(item) {
                console.log(item)
            })
            }
    })
    })
}
Run Code Online (Sandbox Code Playgroud)

这是我不明白的问题:我正在尝试response.on('end', function(){})使用字典将完成的数据存储到每个URL中.但是,我不知道如何得到这个网址http.get().如果我可以在里面做一个局部变量http.get(),那就太好了但我想每当我声明一个变量时var url,它总是指向最后一个url.因为它是全局的并且它通过循环不断更新.我将这些已完成数据存储为密钥等于url的值的最佳方法是什么?

javascript asynchronous node.js

3
推荐指数
1
解决办法
2662
查看次数