无法使用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.
我想循环发送帖子请求.如果我连续发送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) 为了获取一些内容,我一直对将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) 我正在学习用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的值的最佳方法是什么?