J'utilise jQuery pour poster une grande quantité de données (relativement) à un système Web, je migre d'Ubuntu en Centos (processus douloureux). Le problème est que les données reçues sont tronquées. Envoi des mêmes données du serveur aux résultats du client en aucune troncature. P>
La quantité de données étant "envoyée" (c'est-à-dire ce que je vois pendant le débogage JavaScript) est de 116 902 octets (le montant correct des données), alors que la quantité de données reçue est Cette idée de côté, mon installation PHP est configurée pour accepter 8M de données post et utiliser jusqu'à 128 m de mémoire physique, ce qui semble suffisamment suffisamment. P> Le code JQuery est ci-dessous. Je suis sûr que ce n'est pas le problème, mais je l'ai inclus comme demandé. P> Recevoir: P> var serialised = JSON.stringify(MIRM_MODEL.serialise());
4 Réponses :
Essayez de définir le paramètre Timeout JQuery's Ajax's> Timeout CODE> à un nombre élevé (note, il est en millisecondes, vous y voudrez probablement 10000, ce qui est 10 secondes).
Quelques autres options à essayer:
1. Vérifiez que votre temps d'exécution PHP Max est un montant décent. Je doute que cela serait lié mais c'est possible em>.
2. Sur la fonction d'erreur de JQuery, exécutez Edit: En outre, avez-vous vérifié la taille maximale du champ de votre base de données? Il est tout à fait possible que la base de données tronquait automatiquement les informations. P> console.log (xhr) code> sur le résultat code> xhr code> (vous devez le faire en chrome ou trouver une autre méthode de voir le résultat ). XHR est un objet XHR qui contient des informations de débogage sur ce qui s'est passé avec la connexion E.G. Codes d'état, informations sur le délai d'attente, etc. p>
Merci pour les suggestions, je vais les essayer la semaine prochaine, je suis sur le point de sauter dans un avion. Je peux définitivement dire que ce n'est pas la base de données, j'utilise une colonne de texte longue et il n'y a pas de problèmes de stockage.
D'accord, je l'ai vérifié et ce n'est pas une chose de temps: l'échec survient dans les 3 secondes, mes délais sont tous beaucoup plus élevés que cela.
Mon sentiment d'intestin est que c'est un délai d'attente PHP, je n'ai jamais entendu parler d'un timeout JavaScript - et j'ai la course de JQuery pendant 3 ou 4 heures, mais ensuite, ils continuent de poster de petites mises à jour (comme une barre de progrès _session dans Php ... mais je me digresse .. De toute façon, vous devez utiliser Firefox pour cela, c'est-à-dire que vous ne "croiez pas" vous quand vous savez ce que vous faites et que vous sortez environ 40 minutes) ~ Chrome n'a pas été utilisé par moi à Le temps.
En fait, venez-y, vous dites que vous migrer vers Centos sons pour moi, comme est doit être associé au serveur. Vous regardez simplement au mauvais endroit. P>
BTW Félicitations sur Centos C'est incroyable! Je le ferais facilement et avoir une lampe entière Centos VM Just Fo Rthis App (essayez de ne pas vous rendre FAFF avec les vhosts pour cela, c'est VV Messy) et définissez simplement l'ensemble de l'installation Apache / PHP totale pour être incroyablement élevé. P>
Les paramètres PHP.INI corrects sont P>
max_input_time //(not max_execution_time!) upload_max_filesize post_max_size // .. and try memory_limit
Merci Connaires, je viens de récupérer de l'autre voyage cet après-midi, alors je vais vérifier demain matin. Je pense que vous avez peut-être raison, le temps de saisie maximum semble très intéressant et je tiens à voir quelle est la valeur. PS, Centos est une douleur droite dans le cul - j'ai depuis dû changer d'Ubuntu parce que les colis à la disposition de moi étaient loin, beaucoup trop vieux et les inconvénients de la construction / de la recherche de tous ne valaient pas presque mon temps. Ubuntu pour la victoire :).
<3 cents OS: D Désolé Vous avez des difficultés (si, en fait, faites un hôte frais avec environ 4 Centos VMS ce matin ~: D) Si vous avez besoin d'aide, déposez-moi un email
D'accord, je l'ai vérifié et pas de dés. Mon temps d'exécution maximum était de 6o secondes, alors que l'échec survient dans l'une des 3 secondes environ. PS, Centos a ses avantages, mais les colis sont juste loin, beaucoup trop âgés pour moi. Merci quand même pour l'offre :).
ces valeurs: les augmente de toute façon .. Faire-leur maximum .. Il y a toutes sortes de limites de taille postale et de toutes les autres .. Une chose est essentielle d'être approfondie, vous voudrez peut-être mordre la balle et faire du peigne à dents fine Mode: c'est-à-dire que vous devez faire est d'aller sur Ubuntu et d'écrire ces scores (pour les paramètres ci-dessus), puis appliquez-les, et si cela échoue à la ligne httpd.conf / php.ini par ligne portant l'esprit, il y aura sans doute une énorme version de la version et assurez-vous que chaque propriété
(y compris les propriétés de Vhost.conf et .htaccess - de plus en plus, celles-ci sont de plus en plus sont les suivantes: ces «choses sont définies») C'est une douleur royale massive, mais je suis sûr à 100%, c'est un problème de serveur que je saisis mon (faible) la réputation. J'avais l'habitude de travailler pour une université et j'ai fait l'ensemble du script de création de compte AD à JQuery / PHP et il a couru pendant 8 heures par jour lors de l'inscription des élèves (création de comptes d'impression, de dossiers de fichiers, de connexions de bibliothèque, de comptes de messagerie, d'éléments d'enregistrement de l'étudiant, Moodle Info)
Il y avait littéralement mille tâches par boucle et des milliers d'élèves arrivant et le seul temps de temps du côté du client que j'avais vu était c'est-à-dire quand il a couru pour> 40 minutes. FF n'a pas fait cela, il est resté en cours d'exécution.
Vérifiez les variables php.ini suivantes: p>
post_max_size p>
max_input_vars - cela pourrait réellement être le coupable car il tronque les données p>
PHP post / get / cookie est limité à 1000 entrées par défaut. Tout ce qui précède est ignoré. C'est le nombre d'entrées qui comptent, pas la quantité réelle de données. Je vous sweets pour modifier votre php.ini et définir le paramètre max_input_vars sur une plus grande valeur. P>
Cordialement. P>
Lorsque vous examinez les données réelles, pouvez-vous voir la troncature?
Peut inclure votre code jQuery?
@Truth oui la troncature est visible. Les données en question sont insérées dans une base de données sur la réception et la vérification de la base de données indique que les données sont mauvaises. En outre, la récupération des données du serveur à partir du client montre la même chose.
@ajreal l'a ajouté à mon post original. Je suis à peu près sûr que ça va bien (ça marche bien depuis quelques mois), mais vous avez demandé à ce qu'il y ait. Quelques bits inexpliqués là-bas, mais tout ce qui fonctionne bien.
J'ai "résolu" cela, en quelque sorte. Lisez ma "solution" pour plus de détails. La question reste sans réponse cependant.
Pouvez-vous, juste pour le test, utilisez une forme normale au lieu de JQuery Ajax? Je veux dire au lieu de $ Ajax mettez des données dans des formes HTML masquées, puis appellez Soumettre. Veuillez vérifier si les données sont tronquées
@mrok L'application est assez compliquée, c'est une chose assez difficile à essayer, mais je vais lui donner une réflexion et peut-être essayer la semaine prochaine, lorsque je reviens d'un voyage d'affaires.
Quelqu'un a des nouvelles sur ces problèmes? J'ai le même problème
Après 8 ans, je pense que vous migrirez cela à Ubuntu à mesure que les pouvoirs - qui sont à Redhat, ont décidé que nous devons payer pour Centos sinon notre point d'essai. Malheureusement, il s'agit d'un changement de plans très légitimes - nous nous sommes vraiment éloignés pendant une longue période. Le problème est probablement votre max_input_vars b> que je ne suis pas capable de définir sur .htaccess car il ne peut pas être défini via INI_SET B>. Toujours en essayant de toute façon.