【问题标题】:Angular encoding accepting backslash角度编码接受反斜杠
【发布时间】:2018-11-13 14:01:32
【问题描述】:

我有一个使用 Angular 的应用程序,它通过休息与后端通信。我的问题编码遇到问题。

角部分:

  searchCase(searchText: string): Observable<Case[]> {
    const encodedText = encodeURIComponent(searchText);
    return this.http.get<Case[]>(`${this.baseUrl}/case/search/${encodedText}`);
  }

休息:

public List<Case> searchCase(
        @PathParam("searchedText") String searchedText) {
    return caseManagement.searchCase(searchedText);
}

对于任何输入,这都可以正常工作,除了反斜杠。然后,它甚至没有到达我的后端休息部分。怎么办?

【问题讨论】:

  • 看这里stackoverflow.com/questions/12555230/…。实际上它被认为是你的 URL 的一部分,所以按照@sachleen 的步骤,它会正常工作的!
  • 你能给我们一些字符串例子吗?
  • @AndrejBuday 一个例子是 "12\65" - 只是一个包含反斜杠的随机字符串

标签: java angular rest


【解决方案1】:

原来用btoa代替就够了:

searchCase(searchText: string): Observable<Case[]> {
    const encodedText = btoa(searchText);
    return this.http.get<Case[]>(`${this.baseUrl}/case/search/${encodedText}`);
  }

然后在后端对其进行解码,似乎完全可以正常工作。

【讨论】:

    猜你喜欢
    • 2016-04-10
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多