IE7 attraper l'erreur "URL trop longue"

IE7 attraper l'erreur "URL trop longue" - HTML/CSS - Programmation

Marsh Posté le 10-03-2008 à 07:27:53    

salut, j'ai une petite question
comme vous le savez l'erreur "URL trop longue" arrive cote client quand le nombre de carateres d'une URL depasse la limitation du browser (environ 2000 dans IE).
ce qui peut se produire sur un submit en method GET par exemple.
c'est ce cas precis qui m'interesse:
voila j'ai une function submit (j'utilise le DOM extension du framework Prototype) dans laquelle je fais certaines choses
avant de finalement appeller le submit natif de l'explorateur. Cet appel ci etant coince dans un block try...catch.
si je catche une exception je passe en POST et je reessaie.
ca marche bien pour IE6, ce qui me va pour l'instant, le probleme est qu'il semblerait qu'IE7 ne lance pas d'exception la ou IE6 en genere une.
donc ma question est: avez-vous une idee de comment je pourrais recuperer l'erreur URI too long dans IE7? cote client en Javascript.
merci bien


Message édité par becvert le 10-03-2008 à 08:36:12
Reply

Marsh Posté le 10-03-2008 à 07:27:53   

Reply

Marsh Posté le 10-03-2008 à 08:51:11    

le GET n'est pas faitr pour envoyer plein d'infos. Pourquoi ne pas utiliser un POST, vu qu'en plus tu peux le faire ?

Reply

Marsh Posté le 10-03-2008 à 09:28:00    

je m'attendais a cette reponse :) merci d'avoir pris le temps de me repondre. je comprends ton argument.
ceci dit mon approche du GET/POST est plus lie a la finalite d'une requete HTTP. c'est a dire que j'utilise GET pour aller chercher des donnes et POST pour leur persistance en DB par exemple. A priori ceci devrait independant d'une limitation sur la longueur de l'URL.
excuse moi, pour justifier l'utilisation du GET j'aurais du donner un exemple:
j'ai une page qui me permet de voir le contenu de tables d'une base de donnees et j'ai des filtres pour chaque colonne. je ne fais pas un choix parmi les tables, n'importe quelle table est visible, donc je ne maitrise pas a l'avance le nombre de colonnes et donc de filtres (input text). je pourrais mettre un POST quoi qu'il en soit mais j'essaie d'eviter autant que ce peut le POST quand il n'est pas necessaire.

Reply

Marsh Posté le 10-03-2008 à 11:03:42    

La méthode GET est effectivement la bonne dans ce cas. Maintenant est-tu sûr d'arriver à cette limite des 2000 caractères ?

Reply

Marsh Posté le 10-03-2008 à 11:31:27    

oui sur et certain. j'ai tente une serialization "manuelle" (Prototype propose une methode pour ca) afin d'obtenir la longueur. mais cette option n'est pas satisfaisante car pas assez rapide.  
aussi l'autre probleme sous IE7 toujours lors d'une URL trop longue, c'est que bizarrement celle-ci est changee en barre d'addresse (aucune requete ne part pour autant) mais se retrouve tronquee. ce qui est embetant si on clique sur Reload car la requete du coup est valide niveau longueur mais elle n'a plus de sens!


Message édité par becvert le 12-03-2008 à 01:48:09
Reply

Marsh Posté le 10-03-2008 à 17:39:30    

Autant passer tout en POST dans ce cas, ca reste largement plus simple [:petrus75]

Reply

Marsh Posté le 11-03-2008 à 06:19:17    

oui effectivement c'est la solution de facilite, pragmatique mais peu jolie a mon gout. je suis difficile :)
Au dela du debat GET/POST, de facon concrete, est-ce que cette erreur est recuperable en JavaScript dans IE7?
Et est-ce que quelqu'un est capable de reproduire le comportement que je decris (i.e. url tronquee...)
merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed