如何指定包含#
的redirect_uri
?
脸书源对话框 API 参数参考
redirect_uri
- 用户单击按钮后要重定向到的 URL 在对话框中。使用 URL 重定向时是必需的。
当有问题的redirect_uri
是常规 URL 时,这将按预期工作,但是,当它包含#
时,它会停止工作。
当redirect_uri
http://website.com/foo
时,它会重定向到:
https://website.com/foo?post_id=100006935442054_1384656491776519#_=_
不确定尾随#_=_
的用途,但它不会在这里引起任何问题。
当redirect_uri
http://website.com/#foo
时,它会重定向到:
https://website.com/?post_id=100006935442054_1384656491776629#_=_
因此,似乎忽略#
后面的参数,或者用#_=_
覆盖
鉴于我正在使用单页应用程序,其路由由哈希片段驱动,这破坏了我在应用程序中深层链接的能力。
有关如何解决此问题的任何帮助/建议将不胜感激!
在应用程序中,您可以像处理哈希标记一样处理查询字符串,或者只是执行重定向。
例如,如果您的路由http://website.com/#foo
,请http://website.com/?hash=foo
执行相同的操作或将?hash=foo
重定向到#foo
我现在正在处理这样的问题。要进入redirect_uri和链接的 URL:
.../xfile.jsp?item=/contests/bhg_homeimprovement/bhg_splashsweeps_win2500_homeimprovement&temp=yes&hid=#HashID#&esrc=nwbhgsweeps072514a
FB 对话框按原样收到错误。对完整 URL 进行编码可以修复此问题,并在"HashID"周围输出哈希,但在删除之前输出等号。在那里添加第二个等号将输出 2 个等号,但只有一个等号将不输出任何等号。
这不是一个完整的解决方案,但看起来哈希标记是可能的。