Как правильно использовать XMLHTTPRequest с POST и params?PHP не получает информацию о POST - PullRequest
0 голосов
/ 22 февраля 2012

Я пытаюсь создать веб-приложение Google Maps. Я храню квартиры и хочу их редактировать. Я предоставляю код, который пользователи вставляют и получают информацию из своей ранее сохраненной квартиры. Я использую PHP и JS.

Вот что я пытаюсь сделать:

На стороне клиента я использую:

var clave="<?=$_POST['identificador']?>";
    var params="clave="+clave;

function downloadUrl(params,url, callback) {
  var request = window.ActiveXObject ?
      new ActiveXObject('Microsoft.XMLHTTP') :
      new XMLHttpRequest; //en cierto modo es una API, acepta requests HTTP.

  request.onreadystatechange = function() {
    if (request.readyState == 4) {
      request.onreadystatechange = doNothing;
      callback(request.responseText, request.status);
    }
  };

  request.open("POST", url, true);
  request.send(params);
}

Я получаю «идентификатор» с предыдущей страницы PHP, она получает правильное значение.

Затем я вызываю функцию downloadURL:

downloadUrl(params,"phpsqlajax_genxml1.php", function(data) {
    var xml = parseXml(data); 
    var markers = xml.documentElement.getElementsByTagName("marker"); //coge todos los markers
    //GETS XML RESPONSE AND PUTS MARKERS INTO MAPS
    }
  });

Но когда я вызываю phpsqlajax_genxml1.php, он не получает значение POST:

$clave = $_POST["clave"];
echo $clave; //this is not echoing nothing
$query = "SELECT * FROM markers WHERE clave = '{$clave}'";

Есть ли лучший способ сделать это или что я делаю не так?

Большое спасибо заранее.

1 Ответ

0 голосов
/ 28 ноября 2012

Как ответил Роб У, вы можете решить эту проблему, добавив несколько заголовков:

 request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");request.setRequestHeader("Content-Length", params.length);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...