您好我正在尝试使用按钮单击时使用ajax调用多个URL但它无法正常工作
这是我的代码
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc(cfun)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=cfunc;
xmlhttp.open("GET",url/sendmessage.php?user=password=&mobile=7828208357&message=hello dear shakti&sender=&type=3INFORM",true);
xmlhttp.send();
}
function myFunction()
{
loadXMLDoc("GET","demo.html",function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
});
}
</script>
</head>
<body>
<h2>AJAX</h2>
<button type="button" onclick="myFunction()">Request data</button>
<div id="myDiv">
</div>
</body>
</html>
我错了 我怎样才能实现这个目标
任何帮助将不胜感激
答案 0 :(得分:6)
var ajax1 = $.ajax({
dataType: "json",
url: "url",
async: true,
success: function(result) {}
});
var ajax2 = $.ajax({
dataType: "json",
url: "url",
async: true,
success: function(result) {}
});
$.when( ajax1 , ajax2 ).done(function( a1, a2 ) {
// a1 and a2 are arguments resolved for the page1 and page2 ajax requests, respectively.
// Each argument is an array with the following structure: [ data, statusText, jqXHR ]
var data = a1[ 0 ] + a2[ 0 ]; // a1[ 0 ] = "Whip", a2[ 0 ] = " It"
if ( /Whip It/.test( data ) ) {
alert( "We got what we came for!" );
}
});
答案 1 :(得分:0)
您可以使用async执行此操作:
<script type="text/javascript" src="https://raw.githubusercontent.com/caolan/async/master/dist/async.js"></script>
<script type="text/javascript">
var requestUrls = [];//array of urls
//request all data
async.each(requestUrls, function(url, callback) {
$.ajax({
url:url
}).done(function(data){
console.log('data',data);
callback();
}).fail(function(err){
console.log('err',err);
callback(err);
});
}, function(err) {
// if any of the file processing produced an error, err would equal that error
if( err ) {
// One of the iterations produced an error.
// All processing will now stop.
console.log('A url failed to process',err);
} else {
console.log('All url have been processed successfully');
}
});
</script>