是形式enctype“appication / json”可用吗?

时间:2016-06-24 15:36:38

标签: html json forms post w3c

我正在阅读此w3c document关于使用html表单发布JSON数据,并尝试对其进行测试。

我的测试表格如下:

 <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>

以及postjson.php

的内容
<?php var_dump($_POST); 

我期待$ _POST的值是一个JSON字符串,但是,它只是一个普通的PHP对象:

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

我尝试删除enctype属性,输出完全相同。然后我回到文档页面,注意到它表明这个标准可能没有效果。

所以这也是一个关于如何使用W3C网站的问题,在我看来,它上面的一些页面只是草稿。这个页面是草案吗?当我在w3c上阅读页面时,如何判断它是草稿还是工作标准?最后也是最重要的是enctype='application/json'工作与否?

2 个答案:

答案 0 :(得分:16)

W3C发布了许多草案和提案,然后在整个社区内进行讨论。如果草案进入通常被认为有用的阶段,浏览器供应商将/可能开始实施它。然后草案通常会进入“推荐”阶段,这意味着W3C正式建议浏览器实施指定的技术;但他们当然不能扭曲任何人的手臂。

每个文档将在其顶部说明其当前状态,http://www.w3.org/TR/列出所有当前文档及其状态。您选择的那个在该页面上被列为“过时”和“已退休”,并且在其顶部有一个巨大的横幅说:

  

当心。此规范不再处于活动维护状态,HTML工作组无意进一步维护它。

所以,不,可能没有浏览器正在实现它。

要跟踪功能的实际可用性,您需要查看第三方资源,例如https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-enctypehttp://caniuse.com

答案 1 :(得分:0)

仅供参考。有一种使用javascript模仿此功能的hacky方法。在这里看到我的图书馆:https://github.com/keithhackbarth/submitAsJSON