【问题标题】:Is form data automatically encoded by browsers?表单数据是否由浏览器自动编码?
【发布时间】:2013-01-08 04:14:58
【问题描述】:

我已经阅读了 some stuff 关于表单数据编码的内容,但有一件事还不清楚。在 enctype="application/x-www-form-urlencoded" 的情况下,我们需要手动对数据进行 urlencode,don't we?

...使用此内容类型提交的表单必须编码如下

必须由谁编码?通过浏览器?还是由应用程序开发人员?

另一件事是——在 multipart/form-data 的情况下,使用或应该使用什么编码(如果有)?

我有点提前误导了这么多。

【问题讨论】:

  • 这取决于 POST 的生成方式。
  • 很好的答案,这一切突然变得如此清晰,非常感谢!
  • 如果您将表单的enctype 属性设置为application/x-www-form-urlencoded,浏览器将自动对表单数据进行编码。您是否在使用不对值进行编码的浏览器时遇到问题?
  • 不,就是这样——我不明白谁应该根据规范对数据进行编码。通过实验,我发现浏览器可以做到,但我仍然有疑问。但是 multipart/form-data 呢?

标签: forms urlencode multipartform-data


【解决方案1】:

实际上,浏览器会自动对数据进行 url 编码。而这个w3 docs首先是为那些制作浏览器的人准备的。所以这句话,Forms submitted with this content type must be encoded as follows 意味着数据应该由浏览器编码。无论如何,可以通过在表单数据处理脚本中查看原始帖子来检查它(如果 php in 看起来像file_get_contents("php://input");

【讨论】:

    猜你喜欢
    • 2018-12-11
    • 2022-01-17
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 2011-01-17
    相关资源
    最近更新 更多