web-dev-qa-db-fra.com

Request-URI Trop Grand

Vous avez cette erreur sur une grosse requête $_GET de taille ~ 9 000 symboles (ils sont divisés en ~ 10 variables).

Request-URI Too Large

The requested URL's length exceeds the capacity limit for this server.

Qu'est-ce qu'une solution de contournement pour ce problème?

10
Jasper

Il n'y a pas de solution de contournement si vous souhaitez transmettre toutes ces informations avec GET sans modifier la configuration du serveur.

Autres solutions:

  • Utilisez POST avec un formulaire (ou un formulaire masqué et ajoutez un événement onclick à votre lien qui l'a envoyé)
  • Utiliser la session. Lorsque le serveur génère le lien, stockez-le dans $ _SESSION avec un identifiant unique (ou RID, il peut s'agir de l'adresse md5 de l'URI complet) et transmettez-le via GET.
  • Utiliser la base de données ou le stockage de fichiers (avec la même procédure de session)
8
Luca Rainone

Cela a fonctionné pour moi (il a besoin du support formData):

<script>
  //Load form
  var formData = new FormData();
  formData.append("param_name1", "param_content1");
  formData.append("param_name2", "param_content2"); 
  formData.append("param_nameN", "param_contentN"); 

  //Send form via AJAX
  var xhr = new XMLHttpRequest();
  xhr.open("POST", YOUR_URL);  
  xhr.send(formData);
</script>
1
nicolascolman

Un URI a en fait une limite de caractères qui dépend de plusieurs choses. Vous pouvez le vérifier à

Une solution de contournement consiste à utiliser POST à la place de GET si vous développez également le serveur.

0
Croo