我遇到了一个问题:我想要一个双Ajax请求,但我不能。 例如,我有一个PHP(rand.php)页面,它返回一个随机数。 代码:
<?php
$rand = rand(0,10);
echo $rand;
?>
在另一个页面中,我想创建一个Ajax请求,该请求从rand.php中获取一个随机数两次,并将其写入不同的div。
<head>
<script type="text/javascript">
http = new XMLHttpRequest;
function rando(div){
http.onreadystatechange = function(){
if (http.readyState == 4 && http.status == 200){
document.getElementById(div).innerHTML = http.responseText;
}
}
http.open("GET","rand.php",true);
http.send();
}
</script>
</head>
<body>
<div id="div1"></div><br />
<div id="div2"></div><br />
<button onclick="rando('div1');rando('div2')">Randomize!</button>
</body>
它不起作用。请帮帮我!
答案 0 :(得分:0)
是的,正如其他人所指出的那样,http
在rando
的所有来电者之间共享。您应该在rando
内创建一个新的。
顺便说一句,这不适用于所有浏览器。您需要在早期版本的Internet Explorer上创建不同类型的http请求对象。
答案 1 :(得分:0)
每次要调用rand.php时都必须初始化XMLHttpRequest:
<head>
<script type="text/javascript">
function rando(div)
{
var http = new XMLHttpRequest;
http.onreadystatechange = function()
{
if (http.readyState == 4 && http.status == 200) {
document.getElementById(div).innerHTML = http.responseText;
}
}
http.open("GET","rand.php",true);
http.send();
}
</script>
</head>
<body>
<div id="div1"></div><br />
<div id="div2"></div><br />
<button onclick="rando('div1');rando('div2')">Randomize!</button>
</body>