Javascript 使用循环的Ajax请求
你能帮我把这个集成到for循环中吗 我试图从带有类“links”的元素中获取href,然后使用它们 进行httprequest。Javascript 使用循环的Ajax请求,javascript,ajax,xmlhttprequest,Javascript,Ajax,Xmlhttprequest,你能帮我把这个集成到for循环中吗 我试图从带有类“links”的元素中获取href,然后使用它们 进行httprequest。 我已经看到firebug发送了httpRequests,我认为问题在于alertContents函数中的SOMARE。 我挣扎了一整天,但没有结果 <a class="links" href="/1">Link1</a> <a class="links" href="/2">Link2</a> <a class="
我已经看到firebug发送了httpRequests,我认为问题在于alertContents函数中的SOMARE。 我挣扎了一整天,但没有结果
<a class="links" href="/1">Link1</a>
<a class="links" href="/2">Link2</a>
<a class="links" href="/3">Link3</a>
<script>
for(var i = 0; i < 2; i++) {
makeRequest(document.getElementsByClassName("links")[i].href);
}
function makeRequest(url) {
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
httpRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
try {
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
if (!httpRequest) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
httpRequest.onreadystatechange = alertContents;
httpRequest.open('GET', url);
httpRequest.send();
}
function alertContents() {
if (httpRequest.readyState === 4) {
if (httpRequest.status === 200) {
alert(httpRequest.responseText);
// here i get the final value of the variable i
} else {
alert('There was a problem with the request.');
}
}
}
</script>
对于(变量i=0;i<2;i++){
makeRequest(document.getElementsByClassName(“links”)[i].href);
}
函数makeRequest(url){
如果(window.XMLHttpRequest){//Mozilla,Safari。。。
httpRequest=新的XMLHttpRequest();
}如果(window.ActiveXObject){//IE
试一试{
httpRequest=新的ActiveXObject(“Msxml2.XMLHTTP”);
}
捕获(e){
试一试{
httpRequest=新的ActiveXObject(“Microsoft.XMLHTTP”);
}
捕获(e){}
}
}
如果(!httpRequest){
警报(“放弃:(无法创建XMLHTTP实例”);
返回false;
}
httpRequest.onreadystatechange=alertContents;
httpRequest.open('GET',url);
httpRequest.send();
}
函数alertContents(){
if(httpRequest.readyState==4){
if(httpRequest.status==200){
警报(httpRequest.responseText);
//这里我得到变量i的最终值
}否则{
警报(“请求有问题”);
}
}
}
我声明了变量,因此它不是全局变量,并将回调函数移到makeRequest函数中
for (var i = 0; i < 2; i++) {
makeRequest(document.getElementsByClassName("links")[i].href);
}
function makeRequest(url) {
var httpRequest;
function alertContents() {
if (httpRequest.readyState === 4) {
if (httpRequest.status === 200) {
alert(httpRequest.responseText);
// here i get the final value of the variable i
} else {
alert('There was a problem with the request.');
}
}
}
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
httpRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
try {
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!httpRequest) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
httpRequest.onreadystatechange = alertContents;
httpRequest.open('GET', url);
httpRequest.send();
}
for(变量i=0;i<2;i++){
makeRequest(document.getElementsByClassName(“links”)[i].href);
}
函数makeRequest(url){
var-httpRequest;
函数alertContents(){
if(httpRequest.readyState==4){
if(httpRequest.status==200){
警报(httpRequest.responseText);
//这里我得到变量i的最终值
}否则{
警报(“请求有问题”);
}
}
}
如果(window.XMLHttpRequest){//Mozilla,Safari。。。
httpRequest=新的XMLHttpRequest();
}如果(window.ActiveXObject){//IE
试一试{
httpRequest=新的ActiveXObject(“Msxml2.XMLHTTP”);
}捕获(e){
试一试{
httpRequest=新的ActiveXObject(“Microsoft.XMLHTTP”);
}捕获(e){}
}
}
如果(!httpRequest){
警报(“放弃:(无法创建XMLHTTP实例”);
返回false;
}
httpRequest.onreadystatechange=alertContents;
httpRequest.open('GET',url);
httpRequest.send();
}
global variables是您问题的开始。@epascarello,您有时间解释吗?httpRequest=new-XMLHttpRequest();@epascarello,谢谢,我会试试。我从一个url获得的响应文本是响应文本的3倍。