web-dev-qa-db-fra.com

la forme enctype "appication/json" est-elle disponible?

Je lisais ce document w3c à propos des données JSON post avec le format HTML, et essayais de le tester.

mon formulaire de test est comme suit:

 <form action="postjson.php" method="POST" enctype="application/json">
    <input type="hidden" name="touser" value="shenkwen" />
    <input type="hidden" name="msgtype" value="text" />
    <input type="hidden" name="agentid" value="23" />
    <input type="hidden" name="text[content]" value="test message" />
    <input type='submit' value="submit" />
  </form>

et contenu pour postjson.php

<?php var_dump($_POST); 

Je m'attendais à ce que la valeur de $ _POST soit une chaîne JSON. Cependant, il ne s'agit que d'un objet PHP normal:

array(4) { ["touser"]=> string(8) "shenkwen" ["msgtype"]=> string(4) "text" ["agentid"]=> string(2) "23" ["text"]=> array(1) { ["content"]=> string(33) "test message" } }

J'ai essayé de supprimer l'attribut enctype et le résultat est exactement le même. Ensuite, je suis retourné à la page du document et j'ai remarqué qu'il disait quelque chose indiquant que cette norme pourrait ne pas être en vigueur.

C'est donc aussi une question sur l'utilisation du site Web du W3C. Il me semble que certaines pages ne sont que des brouillons. Alors, cette page est-elle une ébauche? Quand je lis les pages sur W3C, comment savoir s'il s'agit d'un brouillon ou d'une norme de travail? Et enfin et surtout, enctype='application/json' fonctionne-t-il ou non?

13
shenkwen

Le W3C publie de nombreux projets et propositions qui sont ensuite discutés au sein de la communauté. Si un brouillon parvient au stade où il est généralement jugé utile, les éditeurs de navigateurs commenceront/pourront le mettre en œuvre. Le projet passe ensuite généralement à une étape de "recommandation", ce qui signifie que le W3C recommande officiellement aux navigateurs de mettre en œuvre la technologie spécifiée. mais bien sûr, ils ne peuvent pas tordre le bras de qui que ce soit pour le faire.

Chaque document indique en haut quel est son statut actuel et http://www.w3.org/TR/ répertorie tous les documents en cours et leur statut. Celui que vous avez choisi est répertorié comme "obsolète" et "retiré" sur cette page et comporte une bannière ginormous en haut de celle-ci:

Il faut se méfier. Cette spécification n'est plus en maintenance active et le groupe de travail HTML n'a pas l'intention de la maintenir.

Donc, non, probablement aucun navigateur ne l'implémente actuellement.

Pour suivre la disponibilité réelle d'une fonctionnalité, vous devez vous adresser à des ressources tierces telles que https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-enctype et http://caniuse.com .

16
deceze

FYI .. il y a un moyen facile de reproduire cette fonctionnalité en utilisant javascript. Voir ma bibliothèque ici: https://github.com/keithhackbarth/submitAsJSON

0
keithhackbarth