两个ajax请求同一地址,第二个请求生效,第一个不生效,怎么让两个都生效

houruyaogeili 2016-06-18 02:30:21
html代码:

 <!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Home</title>
<link href="css/bootstrap.css" rel='stylesheet' type='text/css' />
<!--jQuery (necessary for Bootstrap's JavaScript plugins)-->
<!-- Custom Theme files -->
<link href="css/style.css" rel='stylesheet' type='text/css' />
<link rel="stylesheet" type="text/css" href="css/style2.css">
<script src="ad.js"></script>
<!--Custom Theme files-->
<meta name="viewport" content="width=device-width, initial-scale=1">

<!--<link href='http://fonts.useso.com/css?family=Open+Sans:400italic,600italic,700italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
<link href='http://fonts.useso.com/css?family=Droid+Serif:400,400italic,700italic' rel='stylesheet' type='text/css'>-->
<!--webfonts-->
</head>
<body>
<!--header-->
<div class="header-section">
<div class="header-top"></div>
<div class="container">
<!--top-nav-->
<div class="clearfix"> </div>
<div class="clearfix"> </div>
<!--//End-slider-script-->
</div>
</div>
<!--/header-->
<!-- 输入框 -->
<div style="padding: 35px 100px 20px ;">
<form class="bs-example bs-example-form" role="form">
<div class="col-lg-6">
<div class="input-group">
<input type="text" class="form-control" id='telnum'>
<span class="input-group-btn">
<button class="btn btn-default" type="button" id='telgo'>
Go!
</button>
</span>
</div><!-- /input-group -->
</div><!-- /.col-lg-6 -->
</div><!-- /.row -->
</form>
</div>

<div id="Welcome">
<div class="container">
<div class="wecome-main">
<div class=" col-md-6 wecome-text">
<h1>Welcome</h1>
<span>Pellentesque consequat aliquam hendrerit. Nam eget
tellus felis. Aenean aliquam pretium felis, eu varius
sapien. Mauris porttitor condimentum faucibus.</span>
<p>Nulla facilisi. Nunc convallis tortor non egestas auctor. Sed
quis bibendum ex. In hac habitasse platea dictumstNunc at
elit commodo, placerat massa in, feugiat ipsum. Cras sed
dolor vitae mauris tristique finibus eu a libero. Ut id augue
posuere, faucibus urna nec, pulvinar leo. Sed nunc lectus,
vestibulum nec efficitur sit amet, </p>
</div>
<div class= "col-md-6 wecome-img " style='padding-left:130px'>
<!--<img src="images/wel-img.jpg" alt="">-->
<span style='font-weight:bold' id='textdiv'>
<a href='#'><li>文字广告位</li></a>
</span>

</div>
<div class="clearfix"> </div>
</div>
</div>
</div>
<!-- //End-welcomet-->

<div>
<input type="hidden" value="10010" id="appid">
<input type="hidden" value="" id="aduid">
</div>




<!--//End-foote-->
<div class="copy-right-section">
<div class="container">
<div class="col-md-6 social-icons">


</div>
</div>
</div>

<!-- <div id="extbkbox" class="extbkbox" style="display:block;">
<div class="extbkboxm">
<strong style="float:left;padding-left:10px;">联通最新优惠!</strong>
<div class="extmore">
<span class="extbkboxnar" id="extbkboxnar" onclick="extbkboxnar('extbkboxnar','extbkboxb');"></span>
</div>
</div>
<div class="extbkboxb" id="extbkboxb" style="display:block;">
<img src="" border="0" alt="充一百元送一百元!!" id="adimgcorner">
</div>
</div> -->
<!-- <div id="adimgcorner" class="extbkbox" style="display:block;"></div>
<div id="adimgcorner2" class="extbkbox" style="display:block;"></div> -->
<script type="text/javascript">
window.onload=function(){
ajaxAd("41","adimgcorner","extbkboxnar","extbkboxb");//参数1:广告位唯一标示符 参数2:广告位div的id
ajaxAd("41","adimgcorner2","extbkboxnar2","extbkboxb2");//参数1:广告位唯一标示符 参数2:广告位div的id
}



</script>
</body>
</html>



js:

CONTEXT_PATH = "http://bd.wopaper.com:59886/rtbmain";
var b = new utils();//加密工具
var a = b.code("woJiangSu");
var aduid;
var xmlhttp;

//ajax请求广告
function ajaxAd(appkey,adlocationid,extbkboxnar,extbkboxb){
var telnumobj = document.getElementById("telnum");
var seq = b.code("woJiangSu_"+telnumobj.value+"_imie_"+appkey);//账号_手机号_imie号_广告位唯一标示符

sendAjaxRequest(CONTEXT_PATH+"/ssp/ajaxAdrequest.do","seq="+seq);
xmlhttp.onreadystatechange = function(){
callback(xmlhttp,appkey,adlocationid,extbkboxnar,extbkboxb);
}
}


//ajax请求广告的回调函数
function callback(xmlhttp,appkey,adlocationid,extbkboxnar,extbkboxb) {
var jsonResponse = xmlhttp.responseText;
var provinceJsons = null;
try{
provinceJsons = eval("("+jsonResponse+")");
}catch(exception) {
/*alert(exception);*/
}
alert(provinceJsons);
var adlocationidobj = document.getElementById(adlocationid);
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
if(adlocationid=='textdiv'){
var node = document.createElement("a");
node.setAttribute("href",provinceJsons.href);
node.setAttribute("id","txtid");
node.innerHTML="<li>"+provinceJsons.textTitle+"</li><li>"+provinceJsons.textContent+"</li>";
adlocationidobj.appendChild(node);
}else{
/*adlocationidobj.setAttribute("src", provinceJsons.location);
click(adlocationid,provinceJsons.href,appkey);*/
var noden = document.createElement("div");
noden.className="extbkbox";
noden.style="display:block";

noden.innerHTML='<div class="extbkboxm"><strong style="float:left;padding-left:10px;">联通最新优惠!</strong><div class="extmore"><span class="extbkboxnar" id="'+extbkboxnar+'"></span></div></div><div class="extbkboxb" id="'+extbkboxb+'" style="display:block;"><img src="'+provinceJsons.location+'" border="0" alt="充一百元送一百元!!" id="'+adlocationid+'"></div>';
document.body.appendChild(noden);
clickMin(extbkboxnar,extbkboxb);
click(adlocationid,provinceJsons.href,appkey);
}

loadResponse(appkey+","+provinceJsons.aduid+",1");
aduid=provinceJsons.aduid;
}else{
//error函数
loadResponse(appkey+","+provinceJsons.aduid+",2");
var aduidobj = document.getElementById("aduid");
aduidobj.value="";
}
}
}


function loadResponse(status){

sendAjaxRequest(CONTEXT_PATH+"/dsp/loadResponse.do","status="+status);
xmlhttp.onreadystatechange = function(){
/* callbackLoadResponse(xmlhttp);
*/ }
}

//loadResponse回调函数
function callbackLoadResponse(xmlhttp){
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
alert("success");

}else{
alert("error");
}
}
}

function click(id,href,adpuid){
var idobj = document.getElementById(id);
idobj.onclick=function(){
sendAjaxRequest(CONTEXT_PATH+"/dsp/adClick.do","pt="+a+"&adpid="+adpuid+"&aduid="+aduid)
xmlhttp.onreadystatechange = function(){
callbackClick(href,xmlhttp);
}
}
}
//click的回调函数
function callbackClick(href,xmlhttp){
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
window.location.href=href;
}else{

}
}
}
//发送请求
function sendAjaxRequest(url,cs) {
xmlhttp = createXHR(); //创建XMLHttpRequest对象
xmlhttp.open("post", url, true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlhttp.send(cs);
}
//创建一个XHR对象
function createXHR(){
var xmlhttp = null;

if (window.XMLHttpRequest) {
//针对FF,Mozilar,Opera,Safari,IE7,IE8
xmlhttp = new XMLHttpRequest();
//修正某些浏览器bug
if (xmlhttp.overrideMimeType) {
xmlhttp.overrideMimeType("text/xml");
}
} else if (window.ActiveXObject) {
//针对IE6以下的浏览器
var activexName = ["MSXML2.XMLHTTP", "Microsoft.XMLHTTP", ""];
for (var i = 0; i < activexName.length; i++) {
try {
//取出一个控件名称创建,如果创建成功则停止,反之抛出异常
xmlhttp = new ActiveXObject(activexName[i]);
break;
} catch (e) { }
}
}
//需要确认xmlhttp创建是否成功
if (!xmlhttp) {
alert("XMLHTTPRequest创建失败!");
return;
} else{
return xmlhttp;
}
}
function clickMin(extbkboxnarid,extbkboxbid){
var idnode = document.getElementById(extbkboxnarid);
idnode.onclick=function(){
extbkboxnar(extbkboxnarid,extbkboxbid);
}
}
//右下角广告最小化点击方法
function extbkboxnar(narid,boxbid){
var narrowmen = document.getElementById(narid);
var narrowbox = document.getElementById(boxbid);
if (narrowbox.style.display == "block"){
narrowbox.style.display = "none";
narrowmen.className = "extbkboxnarove";
}else{
narrowbox.style.display = "block";
narrowmen.className = "extbkboxnar";
}
}

}
...全文
2121 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
houruyaogeili 2016-06-19
  • 打赏
  • 举报
回复
二楼方法完美解决,也谢谢一楼~
houruyaogeili 2016-06-19
  • 打赏
  • 举报
回复
太厉害了 按照你说的改了 成功了 非常感谢真的
Go 旅城通票 2016-06-18
  • 打赏
  • 举报
回复
不要共用同一个ajax对象,请每次请求创建一个新的XHR对象
//ajax请求广告
function ajaxAd(appkey,adlocationid,extbkboxnar,extbkboxb){ 
    var  telnumobj = document.getElementById("telnum");
    var seq = b.code("woJiangSu_"+telnumobj.value+"_imie_"+appkey);//账号_手机号_imie号_广告位唯一标示符  
     
/////////////注意这个要加var变为私有变量,不要使用全局变量
    var xmlhttp=sendAjaxRequest(CONTEXT_PATH+"/ssp/ajaxAdrequest.do","seq="+seq);
    xmlhttp.onreadystatechange = function(){
        callback(xmlhttp,appkey,adlocationid,extbkboxnar,extbkboxb);
    }
}

//发送请求
function sendAjaxRequest(url,cs) {  
/////////////注意加var
  var  xmlhttp = createXHR();                 //创建XMLHttpRequest对象  
    xmlhttp.open("post", url, true);
    xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");  
    xmlhttp.send(cs);  

return xmlhttp////////////////////////////////////
}  
街头小贩 2016-06-18
  • 打赏
  • 举报
回复
应该是第一次请求响应还没有返回时,第二个请求发起 了。第二个请求的响应返回了 你打开浏览器>的开发者控制台>网络项看一看

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧