ptest/grunt/js/xmlhttp.js

92 строки
2.0 KiB
JavaScript
Исходник Постоянная ссылка Обычный вид История

2017-01-22 23:47:24 +00:00
//xmlHttpConnect
//xH.conn(URL,Method,Vars,Function done) - assync
//xH.syn(URL,Method,Vars) - sync, return result query
function xH()
{
var xmlhttp, bComplete = false;
try
{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch (e)
{
try
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e)
{
try
{
xmlhttp = new XMLHttpRequest();
}catch (e)
{
xmlhttp = false;
}
}
}
if (!xmlhttp) return null;
this.syn = function(sURL, sMethod, sVars)
{
if (!xmlhttp) return false;
sMethod = sMethod.toUpperCase();
if (sMethod == "GET")
{
xmlhttp.open(sMethod,sURL+"?"+sVars,false);
xmlhttp.send(null);
if (xmlhttp.status == 200)
{
return xmlhttp.responseText;
}
return false;
}
else
{
xmlhttp.open(sMethod, sURL, false);
xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send(sVars);
if (xmlhttp.status == 200)
{
return xmlhttp.responseText;
}
return false;
}
}
this.conn = function(sURL, sMethod, sVars, fnDone)
{
if (!xmlhttp) return false;
bComplete = false;
sMethod = sMethod.toUpperCase();
try
{
if (sMethod == "GET")
{
xmlhttp.open(sMethod, sURL+"?"+sVars, true);
sVars = "";
}
else
{
xmlhttp.open(sMethod, sURL, true);
xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send(sVars);
}
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && !bComplete)
{
bComplete = true;
fnDone(xmlhttp);
}
};
xmlhttp.send(sVars);
}
catch(z)
{
return false;
}
return true;
};
return this;
}