Я разрабатываю небольшой гаджет для нашей интрасети, и у меня есть небольшой файл php на нашем сервере только для первого теста. Теперь все работает, если я использую запрос GET, но я хотел бы использовать POST, чтобы не все данные в URL. К сожалению, я не могу получить какие-либо данные по запросу POST.
Рабочий раствор с GET:
function ajax_getData() {
var error = false;
ajax = new ActiveXObject("Msxml2.XMLHTTP");
ajax.open("GET", "http://server.com/index.php" + "?update&login=" + g_LOGIN + "&pass=" + g_PASS, true);
ajax.onreadystatechange = function() {
if (ajax.readyState === 4) {
if (ajax.status === 200) {
try {
$('#div0').html(ajax.responseText);
// do something
} catch (e) {
error = true;
}
} else {
error = true;
}
} else {
}
if (error) {
// handle error
}
};
ajax.send(null);
}
index.php
echo(var_dump($_POST));
Теперь мое не работающее POST решение:
function ajax_getData() {
var error = false;
ajax = new ActiveXObject("Msxml2.XMLHTTP");
ajax.open("POST", "http://server.com/index.php", false);
//ajax.open("POST", "http://server.com/index.php", true);
ajax.send("update&login=" + g_LOGIN + "&pass=" + g_PASS);
ajax.onreadystatechange = function() {
if (ajax.readyState === 4) {
if (ajax.status === 200) {
try {
$('#div0').html(ajax.responseText);
// do something
} catch (e) {
error = true;
}
} else {
error = true;
}
} else {
}
if (error) {
// handle error
}
};
ajax.send(null);
}
В случае решения POST я всегда получаю из index.php только ‘Array (0)’.
Как насчет использования нового XMLHttpRequest () вместо нового ActiveXObject («Msxml2.XMLHTTP»);
От http://www.w3schools.com/ajax/ajax_xmlhttprequest_create.asp :
Все современные браузеры (IE7 +, Firefox, Chrome, Safari и Opera) имеют встроенный объект XMLHttpRequest.
Синтаксис для создания объекта XMLHttpRequest:
variable=new XMLHttpRequest();
Старые версии Internet Explorer (IE5 и IE6) используют объект ActiveX:
variable=new ActiveXObject("Microsoft.XMLHTTP");
Других решений пока нет …