当Http.get的url中发送的url参数被截断时,http GET请求的网址将被切断

时间:2019-02-06 16:21:23

标签: angular typescript get angular-http

我遇到了我的网址被切断的问题。我是手动将url放在一起,例如

this.http.get(apiUrl + 'endpoint?filter=' + encodeUri(JSON.stringify(params))

这不起作用,所以我将其更改为

this.http.get(apiUrl + 'endpoint', {params:filter})

第一种方法的输出: http://mydomain/api/endpoint?filter=%7B%22where%22:%7B%22and%22:%5B%7B%22project_id%22:%220232%22%7D,%7B%22floor%22:%22Building%20

第二种方法的输出: http://mydomain/api/endpoint?filter=%7B%22where%22:%7B%22and%22:%5B%7B%22project_id%22:%220232%22%7D,%7B%22floor%22:%22Building%20#1%7CFloor%20#1%22%7D%5D%7D%7D

我们可以看到,第一种方法缺少许多字符。 第二种方法的输出也是第一种方法的预期输出,而不是实际的。谁能解释为什么会这样?

1 个答案:

答案 0 :(得分:2)

EncodeURIComponent将对#进行编码,encodeURI将不会(并用于获取整个url并在编码之前跳过第一部分)。传递#号将使其尽早终止。