2009-11-04 5 views
3

Mon serveur renvoie une erreur 403 interdite lorsqu'un utilisateur tente d'accéder à une ressource à laquelle il n'a pas accès. Avec l'en-tête, le serveur écrit également un petit message décrivant l'erreur.Comportement du navigateur sur 403 Erreur interdite

Dans Firefox, le message d'erreur s'affiche correctement et l'utilisateur sait ce qui se passe.

Dans Internet Explorer, le message est masqué et remplacé par la page d'erreur standard 403 Interdit.

Existe-t-il des règles spécifiques qui me permettent d'afficher un message d'erreur sur tous les navigateurs tout en définissant le statut sur 403 Interdit?

Voici les informations sur ce statut RFC:

Le serveur a compris la requête, mais refuse de le remplir. L'autorisation n'aidera pas et la demande NE DEVRAIT PAS être répétée. Si la méthode de demande n'était pas HEAD et que le serveur souhaite rendre public la raison pour laquelle la demande n'a pas été satisfaite, il DOIT décrire la raison du refus dans l'entité. Si le serveur ne souhaite pas mettre cette information à la disposition du client, le code d'état 404 (Non trouvé) peut être utilisé à la place .

Il semble que je devrais définir un message mais IE ne l'affichera pas.

+1

Ajoutez cela à la liste d'autres choses que IE ne montrera tout simplement pas :) Je pense que le mieux que vous pouvez espérer est le générique "partez" –

Répondre

6

Essayez d'agrandir votre page 403 (c'est-à-dire plus d'octets). Certains navigateurs supposent qu'une page d'erreur courte est la page par défaut du serveur Web et décident d'afficher leur propre texte, probablement plus utile.

More info.

+0

Merci, c'est correct! J'ai finalement compris cela moi-même la nuit dernière. Je viens d'ajouter un long commentaire à la fin du corps. Parfois, IE me rend fou. –

0

L'implémentation de la gestion des erreurs dépend du navigateur. Dans HTTP si vous voulez juste renvoyer une erreur 403, vous devez vous fier à l'agent utilisateur (le nom technique du navigateur, le destinataire de votre message d'erreur peut ne pas être un navigateur) pour gérer la façon dont il le juge approprié.

Si vous n'aimez pas la façon dont les navigateurs gèrent les erreurs 403 et que vous souhaitez assurer une expérience utilisateur cohérente dans tous les navigateurs, redirigez l'utilisateur vers votre page "Autorisation refusée". Vous pouvez construire une page qui peut leur expliquer pourquoi la permission a été refusée et ce qu'ils pourraient faire à ce sujet. Et ce sera cohérent pour n'importe quel navigateur.

Questions connexes