request = new XMLHttpRequest();
Być może pobierasz niewłaściwą wersję, napisz sobie funkcję:
function getXMLHttpRequestObject()
{
var wersjeMSXML = new Array(
"MSXML2.XMLHTTP.6.0",
"MSXML2.XMLHTTP.5.0",
"MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0",
"MSXML2.XMLHTTP",
"Microsoft.XMLHTTP"
);
try {
return new XMLHttpRequest();
}
catch(e) {
for (var indeks in wersjeMSXML) {
try {
return new ActiveXObject(wersjeMSXML[indeks]);
}
catch(e) {
}
}
return null;
}
}
i używaj zamiast XMLHttpRequest();
A tak wygląda poprawna wersja POST request'a:
function startPOSTRequest(url, params, onComplete, onEnd)
{
var XMLHttpRequestObject = getXMLHttpRequestObject();
if (XMLHttpRequestObject) {
XMLHttpRequestObject.open("POST", url);
XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4) {
if (XMLHttpRequestObject.status == 200) {
var responseXML = XMLHttpRequestObject.responseXML;
var responseText = XMLHttpRequestObject.responseText;
onComplete(responseText, responseXML);
}
delete XMLHttpRequestObject;
onEnd();
}
}
XMLHttpRequestObject.send(params);
}
}