我想使用JQuery库来进行异步ajax调用而不是我创建的,如果同时进行不同的调用就会泄漏。 (除了你建议用于此目的的JQuery之外的任何其他库吗?)。
我目前的挑战是让它在我们的开发环境中使用IE8。它适用于Firefox,但不适用于IE8。问题是我需要使用特定的ActiveXObject - Msxml2.ServerXMLHTTP才能在我们的环境中工作。那么,我如何告诉JQuery创建这个特定的ActiveXObject而不是默认的?谢谢
到目前为止(这适用于Firefox):
var request = $.ajax({
url: "http://mkapacs.com/SimulateUser.php",
cache: false,
type: "GET",
timeout: 14000,
crossDomain: true,
data: {screen: "901", state: "000", trans: "cwd"},
dataType: "xml"
});
request.done(function(msg) {
var fdk="",eppKey="",uInput="";
var xml = msg;
try{
fdk = xml.documentElement.getElementsByTagName("fdk")[0].firstChild.nodeValue;
eppKey = xml.documentElement.getElementsByTagName("eppKey")[0].firstChild.nodeValue;
uInput = xml.documentElement.getElementsByTagName("user_input")[0].firstChild.nodeValue;
//alert('userInput: ' + uInput + ';eppKey: ' + eppKey + ';fdk: ' + fdk);
}catch(er){
alert('error occured while parsing XML for fdk.Error:' + er.message);
}
document.getElementById("ajaxResponse").innerHTML='fdk: ' + fdk + '; eppKey: ' + eppKey + '; uInput: ' + uInput;
//alert('done: ' + msg);
$("#log").html( msg );
});
request.fail(function(jqXHR, textStatus) {
/*for (property in jqXHR) {
alert(jqXHR[property].value);
}*/
alert( "Request failed: " + typeof(jqXHR) + textStatus );
});
答案 0 :(得分:1)
您可以使用jQuery的.ajax()
选项传递您需要的特定XHR对象:
var request = $.ajax({
xhr: new window.ActiveXObject( "Msxml2.ServerXMLHTTP" ),
url: "http://mkapacs.com/SimulateUser.php",
cache: false,
type: "GET",
timeout: 14000,
crossDomain: true,
data: {screen: "901", state: "000", trans: "cwd"},
dataType: "xml"
});
(当然这只适用于IE)。
此外,如果您坚持使用jQuery,则可以简化代码的其他部分。例如,这一行:
fdk = xml.documentElement.getElementsByTagName("fdk")[0].firstChild.nodeValue;
可以简单地
fdk = $(msg).find('fdk').text();