【问题标题】:Handling URI reserved characters for GET requests处理 GET 请求的 URI 保留字符
【发布时间】:2021-09-10 17:14:55
【问题描述】:

我通过使用 encodeURIComponent 替换保留字符从我的角度服务发出 GET 请求,以便将其发送到类似的 URL

http://localhost:4200/api/verifiers/https%3A%2F%2Fwww.web.com%2Fdev%2F0/services/xx%3Ayy%3AV00000000000000000000000000000000000000000000000000000000000000000000000000000000%23read-device

但是,当我的 FastAPI 后端收到请求时,它将显示 404 Not Found 错误,因为 %2F 等某些字符被识别为 /,因此控制器无法解析与应处理请求的方法相关的 URL。

例如,上面的 URL 是从我的后端接收的

/verifiers/https%3A//www.web.com/dev/0/services/xx%3Ayy%3AV00000000000000000000000000000000000000000000000000000000000000000000000000000000%23read-device

【问题讨论】:

    标签: angular get uri backend


    【解决方案1】:

    在前端使用 encodeURIComponent ... 在后端使用 decodeURIComponent 来解扰它

    【讨论】:

    • 问题是FastAPI 会自动将%2F 识别为/ 并且它说该URL 没有处理程序
    【解决方案2】:

    通过在处理程序的 URL 路径中后缀 :path 解决

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多