Redirection avec un 303 après le POST pour éviter de “Page web a expiré”: ça Va fonctionner si il y a plus d'octets que d'une requête GET peut-il gérer?
Je veux la solution de contournement "de la Page web a expiré". Tout d'abord, je viens de modifier un POST à OBTENIR, mais qui a abouti à une erreur de ma requête HTTP dépasse la taille maximale d'un GET.
Alors, maintenant, je suis en train de penser à essayer la technique décrite dans le lien ci-dessous (la poste, 303, redirection), mais j'ai toujours le même limitation de la taille du problème?
Quelle est la bonne réponse à une requête HTTP POST?
Je semble être dans un pick your poison situation.
MODIFIER Plus de détail:
Ce que je suis "DÉTACHEMENT", sont des critères de recherche. Le serveur répond avec les résultats de la recherche. Il y a beaucoup de contrôles sur le formulaire, http://ifdefined.com/btnet/search.aspx, plus si l'utilisateur a ajouté des champs personnalisés, et ASP.NET s'"état d'affichage", ajoute plus d'octets.
OriginalL'auteur Corey Trager | 2009-06-28
Vous devez vous connecter pour publier un commentaire.
/page?id=unique-id-of-the-data
Essentiellement les stocker dans une session. Mais si vous utilisez votre propre mécanisme de stockage et de générer de nouvelles ID pour chaque POST, il fonctionne bien avec plusieurs fenêtres ouvertes (windows partager des cookies, ainsi sessions).
OriginalL'auteur Kornel
Lors de l'utilisation de la HTTP 303 réponse, vous le feriez normalement rediriger vers une URL qui ne pas contenir les informations affichées. Vous ne devez pas exécuter dans la même URL limitation de la taille du problème. Par exemple, un exemple pourrait être la suivante:
Le navigateur peut pas afficher le résultat de la POSTE, mais serait immédiatement rediriger vers l'URL indiquée dans la
Location:
en-tête.Sémantiquement, la bonne requête HTTP de type pour une recherche serait un GET. Vous n'êtes pas à l'ajout ou la modification de toute information sur le site, ce POST n'est pas la bonne chose à faire. Vous avez choisi d'utiliser de POSTE en raison d'une limitation de la taille d'une URL, et non pas pour des raisons sémantiques. Je dirais que si votre URL est trop long pour l'OBTENIR, que vous avez simplement trop de champs dans le formulaire de recherche (dizaines? des centaines?). Je voudrais envisager de repenser la conception de votre application afin de réduire le nombre de champs, de sorte que vous pouvez continuer à utiliser les requêtes GET.
(Je savais que vous alliez dire ça...) j'apprécie vraiment que vous preniez le temps de vous aider. Je ne suis pas ingrat. Mais voici ce que je pense: Mes utilisateurs ne sont pas à me dire que j' "ont trop de champs dans le formulaire de recherche". Les utilisateurs comme le design. Je ne veux pas jeter ce qu'ils aiment. Aussi, mes utilisateurs ne se soucient pas de la "du point de vue Sémantique, le bon...", et ils ne devraient pas avoir de soins. Ils ont juste soin au sujet de l'apparence de la page et son comportement. Je veux surmonter l'aspect purement technique des obstacles et de livrer le comportement qu'ils veulent. Le changement de comportement serait défaite.
OriginalL'auteur Greg Hewgill