如果你熟悉http协议(不熟悉也没关系,可以用浏览器的f12的network面板抓包看下)
当你的网页上有一个表单,最简单的,有两个文本框,一个叫用户名一个叫密码
还有一个提交按钮。
当你输入了用户名密码,点提交,那么发给服务器什么数据呢?
发了类似
username=zhangsan&password=pwd123
这样一串东西,其中zhangsan是你在第一个文本框里填写的内容
pwd123是你在第二个文本框里填写的内容。
回到你的代码,你的transformRequest实际上就是在拼接这个表单,其中=前面的是参数名后面是值,多个参数之间是&分割。
然后你要说了,如果我文本框里输入的用户名里有一个等号怎么办呢?怎么知道这个等号是分割参数名和参数值的等号,还是我作为参数值输入的等号?
那么 encodeuricomponent就是做这个事情,它会把特殊字符,比如等号、and符号都编码成一个特殊字符,比如说1=2,会转换成1%3d2。这个等号就用特殊的%3d代替了。