2010-06-18 6 views
3

Existe-t-il une taille limite pour une demande POST XHR? J'utilise la méthode POST pour sauvegarder des textdata dans MySQL en utilisant le script PHP et les données sont coupées. Firebug me envoie le message suivant:XMLHttpRequest Taille de données POST

... Firebug request size limit has been reached by Firebug. ... 

Ceci est mon code pour envoyer les données:

function makeXHR(recordData) 
{ 
    xmlhttp = createXHR(); 

    var body = "q=" + encodeURIComponent(recordData); 

    xmlhttp.open("POST", "insertRowData.php", true); 
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
    xmlhttp.setRequestHeader("Content-length", body.length); 
    xmlhttp.setRequestHeader("Connection", "close"); 

    xmlhttp.onreadystatechange = function() 
    { 
     if(xmlhttp.readyState == 4 && xmlhttp.status == 200) 
     { 
      //alert(xmlhttp.responseText); 
      alert("Records were saved successfully!"); 
     } 
    } 
    xmlhttp.send(body); 

} 

La seule solution que je peux penser est le fractionnement des données et de faire une file d'attente des demandes XHR mais je Je n'aime pas ça. Y a-t-il un autre moyen?

Répondre

1

XHR Poste n'a pas de limite de taille, mais vous envoyez des données à PHP qui a une limite de taille;) Créez le fichier php ci-après et l'ouvrir dans un navigateur:

<?php phinfo(); ?> 

recherche maintenant pour la variable "post_max_size", cette variable limite les données maximum qui peuvent être envoyées à PHP (mais elle peut être changée dans le php.ini)

+0

Salut, ma valeur initiale pour "post_max_size" était de 8M et je l'ai augmenté à 80M et redémarré le serveur. Ce n'est pas le problème je pense parce que les données n'atteindront jamais 8M en premier lieu ... – user366121

+0

Seulement parce que Firebug a des problèmes avec cette taille de fichier ne signifie pas que cela ne fonctionne pas;) Avez-vous vérifié si le code js fonctionne quand la firebug-console n'est pas active? –

+0

J'ai un soupçon où le problème est. J'utilise une méthode XHR GET pour récupérer les données et GET est limité: function retrieveRows() { xmlhttp = createXHR(); \t xmlhttp.open ("GET", "retrieveRowData.php", false); \t essayez { \t xmlhttp.send (null); } catch (err) { \t errormessage = "Il y avait une erreur sur cette page. \ N \ n"; \t errormessage + = "Description de l'erreur:" + err.description + \ n \ n "; \t \t errormessage + =" Cliquez sur OK pour continuer \ n \ n "; \t \t alerte (errormessage); \t \t}.. \t \t Retourne xmlhttp.responseText; } – user366121