我正在使用以下代码执行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。
我很感激任何指导。
答案 0 :(得分:1)
通常有3种方式(在您描述的情况下)可以限制内容(假设您的AJAX请求是正确的):
也许你的角色格式不同,所以你需要确保它们符合(如果需要的话,将它们转义)符合库或脚本的要求,以便在浏览器中显示它们。
在这种情况下(如@Mark所说):您需要使用encodeURIComponent(yourVar)对&
进行编码以正确输出。这将导致它将&
转换为%26
并导致正确的输出。
PHP限制了您的内容 - 您需要更改php.ini文件中的post_max_size
。但是你已经尝试过了,所以你应该尝试2。
Apache服务器限制您的内容 - 您可以使用LimitRequestBody directive进行操作。这可以设置为从0字节到2 GB的限制。