表单的enctype属性中是否支持"application/json"格式?

29

我正在阅读这篇关于使用HTML表单提交JSON数据的W3C文档,并尝试进行测试。

我的测试表单如下:

 <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个回答

27

W3C发布许多草案和建议,然后在整个社区中进行讨论。如果一份草案被普遍认为有用,浏览器供应商将可能开始实现它。然后,该草案通常会进入“推荐”阶段,这意味着W3C正式建议浏览器按照规定实施该技术;但当然他们不能强迫任何人这样做。

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

注意。本规范不再处于活动维护状态,HTML工作组也不打算进一步维护它。

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

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


2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接