Maison  >  Article  >  développement back-end  >  Pourquoi ne puis-je pas publier de données non binaires volumineuses via AJAX ?

Pourquoi ne puis-je pas publier de données non binaires volumineuses via AJAX ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-03 19:35:30666parcourir

Why Can't I POST Large Non-Binary Data via AJAX?

Comprendre les limites des données PHP/Apache/AJAX POST

Question :

Impossible de POST des données non binaires volumineuses via AJAX, réception d'un résultat vide en PHP avec une erreur indiquant un élément $_POST non défini.

Code :

// JavaScript
$.ajax({
    data: {'data_string': string}
});

// PHP
$_POST['data_string']

Analyse :

Une enquête complète sur les limites potentielles qui peuvent entraver le processus POST est nécessaire pour résoudre ce problème.

Points à considérer :

  • Apache : LimitRequestBody restreint la taille du corps de la requête HTTP reçue par Apache. Généralement défini sur 2 Go, mais des valeurs spécifiques peuvent varier.
  • PHP : Plusieurs paramètres influencent la gestion des données POST :

    • post_max_size : limite la quantité de Données POST pouvant être acceptées.
    • upload_max_filesize : définit la taille maximale pour les téléchargements de fichiers.
    • max_input_time : spécifie la durée maximale autorisée pour la saisie des données POST.
    • max_input_nesting_level : limites les niveaux d'imbrication des tableaux complexes dans les données POST.
    • memory_limit : limite la mémoire disponible pour PHP, ce qui peut avoir un impact sur le traitement de données POST volumineuses.
    • max_input_vars : limite le nombre de variables autorisées dans les données POST. .
  • Autres facteurs :

    • Serveurs proxy : les proxys peuvent imposer leurs propres limites sur la taille du corps de la demande.
    • Navigateurs côté client : les fonctionnalités du navigateur peuvent affecter la taille des données POST pouvant être envoyées.

Solution :

Pour résoudre ce problème , vérifiez chacun de ces paramètres limitants dans Apache, PHP et d'autres composants impliqués. Assurez-vous qu'ils dépassent la taille des données POST transmises.

Si la limite intégrée d'Apache est dépassée, envisagez de diviser les données volumineuses en morceaux plus petits et de les transmettre par étapes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn