【问题标题】:Router with base64 generated param具有 base64 生成参数的路由器
【发布时间】:2014-02-25 15:59:57
【问题描述】:

我正在尝试在将参数转换为geddy.jsroute 的定义的基数 64 后发送参数:

router.get(routing_prefix+'/gogetthecart/:data').to('Main.gogetthecart');

在客户端,javascript,我生成了一个base64 json 数据var jsonb64 = btoa(JSON.stringify(params));,然后我调用了类似这样的 url

http://www.mydomain.com//gogetthecart/GVudGl...aWNo=

我得到 Error: 404 Not Found.. 但是如果我从有效数据的末尾手动删除 =

【问题讨论】:

    标签: node.js geddy


    【解决方案1】:

    社区在 git repos 问题 https://github.com/geddy/geddy/issues/556 正如 Kieran 所说的那样解决了

    我考虑为 Barista 添加对 base64 编码变量的支持 直接,但 b64 规范中的某些字符在 URI 中保留 规格。将其设为默认行为我觉得不舒服。

    但是!您可以简单地覆盖该行为以支持此使用 案例:

    router
    .get( routing_prefix+'/gogetthecart/:data')
    .to('Main.gogetthecart')
    .where({
      data: /[\w\-\/+]+={0,2}/ // base64-safe regex condition
    })
    

    这应该可以解决问题!

    我在这里添加了一个测试: https://github.com/kieran/barista/blob/master/tests/barista.test.js#L812

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-14
      • 2020-01-06
      • 2020-11-16
      • 2013-11-27
      • 2015-07-26
      • 1970-01-01
      • 1970-01-01
      • 2018-07-12
      相关资源
      最近更新 更多