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_sizephp.ini没有成功。顺便说一句,我正在使用 XAMPP。

我会很感激任何指导。

4

1 回答 1

1

通常有 3 种方式(在您描述的情况下)可以限制内容(假设您的 AJAX 请求是正确的):

  1. 也许您的字符具有不同的格式,因此您需要确保它们符合(如果需要,将它们转义)库或脚本的要求,以便它们在浏览器中显示。

    在这种情况下(正如@Mark 所说):您需要对&using encodeURIComponent(yourVar) 进行编码才能正确输出。这将导致它将&要编码的 转换为%26并导致正确的输出。

  2. PHP 限制了您的内容 - 您需要更改post_max_sizephp.ini 文件。但是您已经尝试过了,所以您应该尝试 2。

  3. Apache 服务器正在限制您的内容 - 您可以使用LimitRequestBody 指令进行操作。这可以设置为从 0 字节到 2 GB 的限制。

于 2013-08-13T20:07:38.337 回答