社区
Ajax
帖子详情
一个页面,两次AJAX调用,产生的错误如何解决
wggipkhgef
2009-01-25 03:15:10
我在一个页面内,有两段js程序通过ajax向两个不同的页面请求数据,结果只返回第一次请求的数据,本来两个地方要显示不同的返回数据,结果两个位置都显示同一次请求返回的数据,请问如何解决?按理说,一个页面不可能只允许一次ajax调用啊,我把其中一个地方改为onchange,onclick...之类的事件就又正常,没有问题,但如果没有事件,是直接请求的话,就只返回第一次请求的数据
...全文
569
7
打赏
收藏
一个页面,两次AJAX调用,产生的错误如何解决
我在一个页面内,有两段js程序通过ajax向两个不同的页面请求数据,结果只返回第一次请求的数据,本来两个地方要显示不同的返回数据,结果两个位置都显示同一次请求返回的数据,请问如何解决?按理说,一个页面不可能只允许一次ajax调用啊,我把其中一个地方改为onchange,onclick...之类的事件就又正常,没有问题,但如果没有事件,是直接请求的话,就只返回第一次请求的数据
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DAMINGSHANG
2009-01-27
打赏
举报
回复
1,页面不可能只允许一次ajax调用
2,因为你的代码不是很全,所以暂时只能给你一个解决方案,如下
function aa()
{
createXHR();
url="aa.asp";
xmlhttp.open("GET", url, true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("aa").innerHTML = xmlhttp.responseText;
bb();//在这里加上bb的执行,onload时不直接调用。
}
}
ajax.send(null);
}
function bb()
{
createXHR();
url="bb.asp";
xmlhttp.open("GET", url, true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("bb").innerHTML = xmlhttp.responseText;
}
}
ajax.send(null);
}
午夜咖啡男
2009-01-25
打赏
举报
回复
按照你的逻辑,貌似之创建了一个全局的请求对象,当然有问题
wggipkhgef
2009-01-25
打赏
举报
回复
谢谢大哥,我回去测试一下,年后再来结贴,呵呵
neo_yoho
2009-01-25
打赏
举报
回复
怎么一会儿xmlhttp一会儿ajax的。。。
function createXHR()
{
//......建立一个XMLHttpRequest对象
return xmlhttp;
}
function aa()
{
var xmlhttp
= createXHR();
url="aa.asp";
xmlhttp.open("GET", url, true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("aa").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null);
}
wggipkhgef
2009-01-25
打赏
举报
回复
上面代码写快了,有点错误
getElementById("aa")改为getElementById("a")
getElementById("bb")改为getElementById("b")
ajax.send(null)改为xmlhttp.send(null)
wggipkhgef
2009-01-25
打赏
举报
回复
我现在是在网吧上网,没办法贴代码,不过可以简要的说明一下逻辑
HTML部分
<div id='a'></div><script type='text/javascript'>aa();</script>
<div id='b'></div><script type='text/javascript'>bb();</script>
JS部分
function createXHR()
{
//......建立一个XMLHttpRequest对象
}
function aa()
{
createXHR();
url="aa.asp";
xmlhttp.open("GET", url, true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("aa").innerHTML = xmlhttp.responseText;
}
}
ajax.send(null);
}
function bb()
{
createXHR();
url="bb.asp";
xmlhttp.open("GET", url, true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("bb").innerHTML = xmlhttp.responseText;
}
}
ajax.send(null);
}
---------------------------------------
得到的结果是只返回aa()函数内的aa.asp返回数据,id="a"和id="b"的div内显示同样的值,假如HTML部分改成如下:
<div id='a'></div><script type='text/javascript'>aa();</script>
<div id='b'><a href='#' onclick='javascript:bb();'>点击获得数据</a></div>
这样id="a"的部分可以显示返回值,通过点击id="b"内的"点击获得数据"也可以让id="b"的div获得正确返回值
neo_yoho
2009-01-25
打赏
举报
回复
不知道代码是什么样子的
反正要注意用私有变量去创建请求和回调函数的写法
Ajax
52,787
社区成员
25,335
社区内容
发帖
与我相关
我的任务
Ajax
Web 开发 Ajax
复制链接
扫一扫
分享
社区描述
Web 开发 Ajax
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章