V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
chen2016
V2EX  ›  问与答

对短网址提交 post 是不是无法实现?

  •  
  •   chen2016 · 2017-10-15 15:56:10 +08:00 · 2322 次点击
    这是一个创建于 2588 天前的主题,其中的信息可能已经有所发展或是发生改变。

    短网址,应该都是数据库存着原网址和短网址,对短网址提交 post,还要从数据库查询原网址是什么,但是这时候,已经无法将 post 的数据传过去了。。

    第 1 条附言  ·  2017-10-15 18:54:42 +08:00
    感谢 12 楼,目前实现的方法也很简单。
    redirect(url,code=307)
    28 条回复    2017-10-15 23:10:41 +08:00
    qiayue
        1
    qiayue  
       2017-10-15 15:58:20 +08:00   ❤️ 18
    建议回小学先学习语文再来发帖
    chen2016
        2
    chen2016  
    OP
       2017-10-15 16:00:16 +08:00 via Android   ❤️ 6
    @qiayue 好的。如果你看不懂,也请学学
    laoyur
        3
    laoyur  
       2017-10-15 16:10:23 +08:00
    如果没记错,302 的话,浏览器一定是走的 GET,那么本来的 POST 数据肯定丢了啊
    主帖正文的确让人看不懂,跟数据库查询原网址有什么关系?
    chen2016
        4
    chen2016  
    OP
       2017-10-15 16:12:21 +08:00 via Android
    @laoyur 不查数据库怎么知道原网址?
    chen2016
        5
    chen2016  
    OP
       2017-10-15 16:14:16 +08:00 via Android
    @laoyur 其实是数据是哪一步丢的问题。我理解的是短网址提供站查询原网址那一步丢的。
    xjp
        6
    xjp  
       2017-10-15 16:36:12 +08:00 via iPhone
    我感觉这个得看各个短地址服务的实现方式了
    qiayue
        7
    qiayue  
       2017-10-15 16:58:43 +08:00   ❤️ 1
    我也不怕被打脸,看得懂正文的请点赞 2 楼,看不懂的请点赞 1 楼
    akira
        8
    akira  
       2017-10-15 17:01:40 +08:00
    如果短地址是你自己实现的话,不管是 get 还是 post,都有办法把参数传递下去。
    如果是别人的,别人没实现这一块,当然数据就丢失了啊
    chen2016
        9
    chen2016  
    OP
       2017-10-15 17:05:24 +08:00 via Android
    @akira 之所以有这个问题,是因为自己用 flask 写了个类似短网址的东西,但是 post 短网址数据无法传,估计实现起来也不怎么好实现
    chen2016
        10
    chen2016  
    OP
       2017-10-15 17:05:58 +08:00 via Android
    @xjp 市面上的短网址估计都不行,除非自己专门写
    chen2016
        11
    chen2016  
    OP
       2017-10-15 17:07:47 +08:00 via Android
    @qiayue 我是来问问题的,表述不清晰的话,可以直接关掉主题,不必去说别人什么。所以你也不用无意义的来争
    also24
        12
    also24  
       2017-10-15 17:08:30 +08:00   ❤️ 5
    chen2016
        13
    chen2016  
    OP
       2017-10-15 17:12:17 +08:00 via Android
    @also24 居然还有这种
    qiayue
        14
    qiayue  
       2017-10-15 17:30:08 +08:00
    你 9 楼就说清楚了啊
    你不说清楚,我们怎么回答问题,靠猜你想问什么,万一猜错了怎么办
    em70
        15
    em70  
       2017-10-15 17:36:37 +08:00
    @chen2016 实现不难啊,短网址服务器查询到原网址后把接收到的所有参数原样 post 给原网址再给你显示返回值就行了,需求太小众,已有短网址服务肯定不支持,自己写一个吧
    azh7138m
        16
    azh7138m  
       2017-10-15 17:41:40 +08:00 via Android
    并不是很懂,为什么会有这个需求
    chen2016
        17
    chen2016  
    OP
       2017-10-15 17:42:55 +08:00 via Android
    @azh7138m 想不到的操作还有很多。。
    also24
        18
    also24  
       2017-10-15 17:45:31 +08:00
    @chen2016 #13 从我司运维那里学到的
    Infernalzero
        19
    Infernalzero  
       2017-10-15 17:48:57 +08:00
    @chen2016 你自己写的就好搞了啊,重定向别用 301 或者 302,用 307 就行了,1 楼看不懂你说的估计是不了解浏览器对 post 请求的重定向行为
    tomczhen
        20
    tomczhen  
       2017-10-15 18:02:08 +08:00 via Android
    虽然可以用 307 重定向,但是否可以成功还是取决于 client 的实现,这个是不可控的。
    whatsmyip
        21
    whatsmyip  
       2017-10-15 18:02:37 +08:00
    这个不错,下次改版可以考虑加进去了
    Shura
        22
    Shura  
       2017-10-15 18:15:09 +08:00
    转发数据就行了啊
    azh7138m
        23
    azh7138m  
       2017-10-15 18:17:53 +08:00 via Android
    @chen2016 post 都是程序狗写的吧,为啥这个地方要用短网址,我想不明白,能分享下场景吗?
    qiayue
        24
    qiayue  
       2017-10-15 18:27:11 +08:00
    说实话,我直到 23 楼才完全领悟到楼主的问题在哪里了

    如果是楼主自己实现的短网址程序的话,请在收到请求后,判断请求方式是否为 post
    如果是 get,就直接重定向到原网址
    如果是 post,就把 post 里边的数据获取后,由你 post 到原网址,得到返回的数据后,打印出来
    only0jac
        25
    only0jac  
       2017-10-15 18:27:25 +08:00 via Android   ❤️ 1
    其实楼主的意思是 post 短网址能不能和 post 原网址有一样的效果,说白了,楼主底子太差,还不是一般的差,连基本的东西都不明白,能问出这种问题也是绝

    还有,听起来楼主似乎是想干点不好的事情又不想让别人看见自己网址,对,我就是喷子,看谁都是坏人
    chen2016
        26
    chen2016  
    OP
       2017-10-15 18:56:17 +08:00 via Android
    @only0jac 唯有 block 一敬
    qiayue
        27
    qiayue  
       2017-10-15 19:23:17 +08:00
    学习了,之前还真不知道 307 的作用
    谢谢 @also24
    akira
        28
    akira  
       2017-10-15 23:10:41 +08:00
    "如果是除了 GET 和 HEAD 之外的请求方法,客户端必须在重定向之前询问用户。"

    按照这个规范的话,除非你能确保客户端是自己的,不然最好还是不要用 307
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5190 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 09:18 · PVG 17:18 · LAX 01:18 · JFK 04:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.