Javascript 无法对同一ajax对象使用两个函数
下面的函数仅用于获取属于函数1的URL。函数2发出另一个ajax调用以获取和显示函数1获取的其中一个页面中的数据,但该函数不起作用。为什么会这样,这里有冲突吗?我相信在这种情况下,可以使用同一个对象,即xmlhttp来实现多个功能Javascript 无法对同一ajax对象使用两个函数,javascript,jquery,ajax,Javascript,Jquery,Ajax,下面的函数仅用于获取属于函数1的URL。函数2发出另一个ajax调用以获取和显示函数1获取的其中一个页面中的数据,但该函数不起作用。为什么会这样,这里有冲突吗?我相信在这种情况下,可以使用同一个对象,即xmlhttp来实现多个功能 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script src="js/jquery-1.11.2.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="js/jquery-1.11.2.min.js"></script>
<script>
var xmlhttp = false;
try {
xmlhttp = new ActiveXObject(Msxml2.XMLHTTP);
//alert("javascript version greater than 5!");
} catch (e) {
try {
xmlhttp = new ActiveXObject(Microsoft.XMLHTTP);
// alert("you're using IE!");
} catch (E) {
xmlhttp = new XMLHttpRequest();
//alert("non IE!");
}
}
//function 1
function sendtobox(param, param2) {
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
if (this.responseText !== null) {
var ajaxElm = document.getElementById('boxA');
//ajaxElm.innerHTML = this.responseText + ajaxElm.innerHTML; // append in front
jQuery(ajaxElm).prepend(this.responseText);
}
}
}
xmlhttp.open("GET", "getsubjects.php?q=" + param + "&r=" + param2, true);
xmlhttp.send();
}
//function 2
function makerequest(serverPage, objID) {
var obj = document.getElementById(objID);
xmlhttp.open("GET", serverPage);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
obj.innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null);
}
var xmlhttp=false;
试一试{
xmlhttp=新的ActiveXObject(Msxml2.xmlhttp);
//警报(“javascript版本大于5!”);
}捕获(e){
试一试{
xmlhttp=新的ActiveXObject(Microsoft.xmlhttp);
//警告(“您正在使用IE!”);
}捕获(E){
xmlhttp=新的XMLHttpRequest();
//警惕(“非IE!”);
}
}
//职能1
函数sendtobox(param,param2){
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
if(this.responseText!==null){
var ajaxElm=document.getElementById('boxA');
//ajaxElm.innerHTML=this.responseText+ajaxElm.innerHTML;//在前面追加
jQuery(ajaxElm).prepend(this.responseText);
}
}
}
open(“GET”、“getsubjects.php?q=“+param+”&r=“+param2,true”);
xmlhttp.send();
}
//职能2
函数makerequest(serverPage,objID){
var obj=document.getElementById(objID);
open(“GET”,serverPage);
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
obj.innerHTML=xmlhttp.responseText;
}
}
xmlhttp.send(空);
}
html
-
-
-
-
为每个调用创建不同的xmlHTTP请求对象
function getXmlHttp() {
var xmlhttp = false;
try {
xmlhttp = new ActiveXObject(Msxml2.XMLHTTP);
//alert("javascript version greater than 5!");
} catch (e) {
try {
xmlhttp = new ActiveXObject(Microsoft.XMLHTTP);
// alert("you're using IE!");
} catch (E) {
xmlhttp = new XMLHttpRequest();
//alert("non IE!");
}
}
return xmlhttp;
}
//function 1
function sendtobox(param, param2) {
var xmlhttp = getXmlHttp();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
if (this.responseText !== null) {
var ajaxElm = document.getElementById('boxA');
//ajaxElm.innerHTML = this.responseText + ajaxElm.innerHTML; // append in front
jQuery(ajaxElm).prepend(this.responseText);
}
}
}
xmlhttp.open("GET", "getsubjects.php?q=" + param + "&r=" + param2, true);
xmlhttp.send();
}
//function 2
function makerequest(serverPage, objID) {
var xmlhttp = getXmlHttp();
var obj = document.getElementById(objID);
xmlhttp.open("GET", serverPage);
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
obj.innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null);
}
您是如何使用不同的对象的,因为我在您的代码中只能看到一个对象的?@sherly在我调用的两个函数中
var xmlhttp=getXmlHttp()返回请求对象的新实例的代码>
function getXmlHttp() {
var xmlhttp = false;
try {
xmlhttp = new ActiveXObject(Msxml2.XMLHTTP);
//alert("javascript version greater than 5!");
} catch (e) {
try {
xmlhttp = new ActiveXObject(Microsoft.XMLHTTP);
// alert("you're using IE!");
} catch (E) {
xmlhttp = new XMLHttpRequest();
//alert("non IE!");
}
}
return xmlhttp;
}
//function 1
function sendtobox(param, param2) {
var xmlhttp = getXmlHttp();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
if (this.responseText !== null) {
var ajaxElm = document.getElementById('boxA');
//ajaxElm.innerHTML = this.responseText + ajaxElm.innerHTML; // append in front
jQuery(ajaxElm).prepend(this.responseText);
}
}
}
xmlhttp.open("GET", "getsubjects.php?q=" + param + "&r=" + param2, true);
xmlhttp.send();
}
//function 2
function makerequest(serverPage, objID) {
var xmlhttp = getXmlHttp();
var obj = document.getElementById(objID);
xmlhttp.open("GET", serverPage);
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
obj.innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null);
}