0

次のコードを使用して POST リクエストを実行しています。

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);
}

generate.phpのようになります。

<?php

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

問題は、長いテキストを送信すると、常にトリミングされることです。増やしてみpost_max_sizeましphp.iniたが、うまくいきませんでした。ところで私はXAMPPを使用しています。

ガイダンスをいただければ幸いです。

4

1 に答える 1

1

一般に、コンテンツを制限できる(説明した状況で)3つの方法があります(AJAXリクエストが正しいと仮定):

  1. 文字の形式が異なる可能性があるため、ブラウザに表示するライブラリまたはスクリプトの要件に準拠する (必要に応じてエスケープする) 必要があります。

    この場合&(@Markが言ったように):適切に出力するには、encodeURIComponent(yourVar)を使用してエンコードする必要があります。これにより、&が としてエンコードされるように変換され%26、適切な出力が得られます。

  2. post_max_sizePHP がコンテンツを制限しています - php.ini ファイルを変更する必要があります。しかし、あなたはすでにそれを試しているので、2 を試してみてください。

  3. Apache サーバーがコンテンツを制限しています - これはLimitRequestBody ディレクティブで操作できます。これは、0 バイトから 2 GB までの制限に設定できます。

于 2013-08-13T20:07:38.337 に答える