2010-01-29 3 views
0

Les annotations de Restlet (2.0M6 sur Google App Engine) sont en fait sensibles à l'ordre des méthodes d'une ressource. Lorsque vous envoyez des données de formulaire html, assurez-vous que la méthode @Post ("html") reste au-dessus de la méthode @Post ("xml") dans la ressource de réception. Au moins, Firefox place les deux types de contenu dans l'en-tête Accept de la requête, de sorte que la première méthode de correspondance sera traitée.Pourquoi un formulaire html envoyé à une ressource de restauration ne fonctionne-t-il pas?

La question est, s'il y a un autre moyen de contrôler la priorité des méthodes?

Par exemple, je voudrais que le client n'accepte que du texte/html.

+0

Est-ce que "html" est la bonne représentation pour "application/x-www-form-urlencoded"? –

+0

@PartlyCloudy: Il s'agit de savoir quel type de représentation est renvoyé au client, une fois que l'application a reçu les données de publication "application/x-www-form-urlencoded". Étant donné que les formulaires sont généralement en html, la réponse devrait être (par opposition aux demandes post-ajax par exemple, qui aboutissent généralement à xml). – Jasper

+0

Je ne suis pas certain de comprendre "Je voudrais que le client n'accepte que du texte/html." Si vous implémentez un serveur, pas un client, vous ne pouvez pas contrôler ce que le client envoie dans l'en-tête 'Accept'. Vous pouvez uniquement contrôler la façon dont votre serveur interprète la demande et comment elle réagit. Pouvez-vous clarifier un peu votre question? Vous posez des questions sur une situation dans laquelle un client spécifie plusieurs types dans l'en-tête 'Accept', et vous voulez préférer un type plutôt qu'un autre, quelle que soit la façon dont ils sont spécifiés dans l'en-tête' Accept'? –

Répondre

1

Selon votre commentaire que vous demandez s'il existe un certain type d'attribut de formulaire html côté client ou JavaScript pour modifier l'en-tête accepter, la réponse serait, AFAIK: non. Pas pour les liens cliqués ou les formulaires soumis par l'utilisateur. Comme vous l'avez mentionné dans votre commentaire, vous pourriez utiliser JS pour intercepter les clics sur les liens et les messages de formulaire, et utiliser XHR à la place, mais ce serait probablement difficile, si possible.

BTW, XmlHttpRequest n'a vraiment rien à voir avec XML. Il peut gérer n'importe quel type de contenu, à la fois pour les demandes et les réponses. Il est très fréquent de renvoyer un extrait HTML à une requête XHR et d'utiliser l'injection DOM pour mettre à jour dynamiquement la page.

Questions connexes