2009-10-10 5 views
0

J'utilise jquery envoyer texte à mon contrôleur ajax.php comme ceci:jquery ajax Taille limite POST?

var dataString = "1234567890";  
$.post(
    '../ajax/save', 
    { data: dataString }, 
    function(){ 
     alert("success"); 
    }, 
    "text"); 

Il fonctionne bien, qui est jusqu'à ce que le datastring arrive à être ~ 3500 caractères. A cette limite supérieure (~ 3,5 Ko), le $ _POST reçu par ajax.php est NULL. Pourquoi?

(Mon php.ini post_max_size = 64M, il est donc pas.)

Ma configuration: Apache 2.2, PHP 5.2.9, et 1.7.1 CodeIgniter.

+0

Référer Auteur: Regilero 's commentaire sur le fil de http://stackoverflow.com/questions/9691057/php-apache-ajax-post-limit –

Répondre

0

Je l'ai compris. Pour une raison quelconque, le débogueur de NetBeans me dit que $ _POST ['data'] est nul, mais ce n'est pas le cas. Pour déterminer manuellement la taille du $_POST reçu, je ces appels:

$request = http_build_query($_POST); 
$size = strlen($request); 

Aussi, je mettais $ _POST [ 'data'] dans la session de CodeIgniter:

$event_array = array('event' => $_POST['data']); 
$this->session->set_userdata($event_array); 

Ce qui était à venir vide ce qui m'a amené à croire que $ _POST était vide. Mais le problème était plutôt $this->session, qui a apparemment une limite de taille de 4K (selon this post).