httpParamSerializerJQLike

httpParamSerializerJQLike

有人可以解释一下$httpParamSerializerJQLike(可在Angular中使用)和encodeURIComponent

使用JSON.Stringify()序列化参数后,是否需要执行$httpParamSerializerJQLike?我的理解是$httpParamSerializerJQLike是Angular的encodeURIComponent版本,并且它在内部执行JSON.Stringify(我不确定这部分)。

最佳答案

$httpParamSerializerJQLike不是Angular的encodeURIComponent版本。

$httpParamSerializerJQLike的文档中:


$httpParamSerializerJQLike用于创建适用于URL查询字符串或Ajax请求的Array或纯对象的序列化表示形式。它用于定义URI的查询参数。它的使用仅限于数组和普通对象。

例如:

$httpParamSerializerJQLike({a: 'two'}); // "a=two"
$httpParamSerializerJQLike('abc'); // "0=a&1=b&2=c"

您会注意到,字符串'abc'被视为字符数组。

encodeURIComponent:



例如:
encodeURIComponent({a: 'two'}); // "%5Bobject%20Object%5D"
encodeURIComponent('abc'); // "abc"
encodeURIComponent('abc abc abc'); // "abc%20abc%20abc"

您会看到encodeURIComponent用适当的转义序列替换了特殊字符,并且不会像对待字符序列那样对待字符串。

07-28 08:49