suche - php search box



Ajax POST-Request wird abgeschnitten (1)

Ich verwende den folgenden Code, um eine POST-Anfrage auszuführen:

function sendAjaxRequest(text) {
  var xmlhttp;

  if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
  } else {
    xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
  }

  xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
      document.getElementById('results').innerHTML = xmlhttp.responseText;
    }
  }

  xmlhttp.open('POST', 'generate.php', true);
  xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
  xmlhttp.send('code=' + text);
}

Wo generate.php wie generate.php aussieht:

<?php

echo isset($_POST['code']) ? $_POST['code'] : '';

Das Problem ist jetzt, dass wenn ich lange Texte sende, sie immer abgeschnitten werden. Ich habe versucht, post_max_size in php.ini zu erhöhen, war aber nicht erfolgreich. Übrigens benutze ich XAMPP.

Ich würde mich über jede Führung freuen.


Es gibt im Allgemeinen 3 Wege (in der beschriebenen Situation), in denen Inhalte eingeschränkt werden können (vorausgesetzt, Ihre AJAX-Anfrage ist korrekt):

  1. Möglicherweise haben Ihre Zeichen ein anderes Format, daher müssen Sie sicherstellen, dass sie den Anforderungen der Bibliotheken oder Skripts entsprechen (sie werden bei Bedarf entfernt), damit sie im Browser angezeigt werden.

    In diesem Fall (wie @Mark gesagt hat): Sie müssen encodingURIComponent (yourVar) codieren, um es korrekt auszugeben. Dies führt dazu, dass es & codiert als %26 und zu einer korrekten Ausgabe führt.

  2. PHP beschränkt Ihre Inhalte - Sie müssen die post_max_size in der Datei post_max_size ändern. Aber du hast es schon versucht, also solltest du 2 versuchen.

  3. Der Apache-Server beschränkt Ihren Inhalt - Sie können ihn mit der LimitRequestBody-Direktive manipulieren. Dies kann auf ein Limit von 0 Byte bis 2 GB gesetzt werden.





xampp