url 传递 url为什么需要编码

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=http://api.baidu.com/callback.php&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
传递回调地址为什么要编码,如果不编码的话确实会出错,问题出现在哪里

已解决 悬赏分:0 - 解决时间 2022-01-16 23:00
反对 0举报 0 收藏 0

回答1

最佳
  • @

    HTTP 协议规定如此,:、#、/、/、?、& 等字符对 URL 来说是有实义的,为了避免歧义,所以需要编码来转义。


    只举一个关于 ? 的例子。

    &redirect_uri=http://api.baidu.com/callback.php?key=val&callback=true 这一个 URL,你到底是想表达:

    • redirect_uri = http://api.baidu.com/callback.php?key=val
    • callback = true

    这两个参数,还是想表达:

    • redirect_uri = http://api.baidu.com/callback.php?key=val&callback=true

    这一个参数呢?

    支持 0 反对 0 举报
    2022-01-16 17:03