【问题标题】:Url for http GET request is being cut off when url params sent in url for Http.get当在 Http.get 的 url 中发送 url 参数时,http GET 请求的 URL 被切断
【发布时间】:2019-02-06 16:21:22
【问题描述】:

我的网址被截断了。我手动将我的网址放在一起,例如

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

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

【问题讨论】:

  • encodeUri 用于整个 URI。你应该使用encodeUriComponent
  • 很好,非常感谢!

标签: angular typescript get angular-http


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 2018-12-14
    • 2019-01-08
    • 2020-07-05
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    相关资源
    最近更新 更多