写点什么

关于 HTTP post 请求 form data 里的特殊符号,比如加号 plus symbol

作者:Jerry Wang
  • 2022 年 7 月 10 日
  • 本文字数:656 字

    阅读完需:约 2 分钟

关于 HTTP post 请求 form data 里的特殊符号,比如加号 plus symbol

对于终端用户来说,表单提交的过程很方便,在某种程度上相当于输入数据,点击提交按钮。 但是,从工程的角度来看,它需要一种编码机制才能可靠地将这些数据从客户端发送和接收到服务器端以进行后端处理。


使用 JavaScript 发送 form data,使用 PHP 作为服务器端接收,则 JavaScript 端需要使用 encodeURIComponent() 进行处理。


表单提交最常用的 HTTP 方法是 POST。 但是,对于幂等的表单提交,我们也可以使用 HTTP GET 方法。 并且,指定方法的方式是通过表单的方法属性。


对于使用 GET 方法的表单,整个表单数据作为查询字符串(query string)的一部分发送。 但是,如果我们使用 POST 方法,那么它的数据将作为 HTTP 请求正文(body)的一部分发送。


而且,在后一种情况下,我们还可以通过表单的 enctype 属性来指定数据的编码方式,该属性可以取两个值,分别是application/x-www-form-urlencodedmultipart/form-data


HTML 表单的 enctype 属性的默认值为 application/x-www-form-urlencoded,因为它处理了数据完全是文本的基本用例。 然而,如果我们的用例涉及支持文件数据,那么我们将不得不用 multipart/form-data 的值覆盖它。


本质上,它将表单数据作为键值对发送,并由 & 字符分隔。 此外,相应的键和值用等号 (=) 分隔。 此外,所有保留字符和非字母数字字符都使用百分比编码进行编码。


看下面的代码:


// url encode your stringvar string = encodeURIComponent('+'); // "%2B"// send it to your serverwindow.location = 'http://example.com/?string='+string; // http://example.com/?string=%2B
复制代码


发布于: 刚刚阅读数: 4
用户头像

Jerry Wang

关注

🏆InfoQ写作平台-签约作者🏆 2017.12.03 加入

SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使。2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。工作中使用 ABAP, Java, JavaScript 和 TypeScript 进行开发。

评论

发布
暂无评论
关于 HTTP post 请求 form data 里的特殊符号,比如加号 plus symbol_HTTP_Jerry Wang_InfoQ写作社区