【发布时间】:2014-06-01 01:12:09
【问题描述】:
Reddit 将查询参数放在 # 之前。这是我的错还是reddit的错?
有什么潜在的解决方法?
- 在 reddit 上,我已将重定向 URL 设置为
http://127.0.0.1:9000/#/oauth - 当我完成 oAuth 过程时,我收到如下响应:
http://127.0.0.1:9000/?state=MY_STATE&code=MY_CODE#/oauth
【问题讨论】:
-
我认为您的期望不正确。根据 RFC2396,# 后面的任何内容都是不由接收请求的服务器或应用程序处理的片段。据推测,reddit 在将值传回给您时不仅仅是盲目的“字符串附加”——它们附加了查询参数。这些参数正确地插入到 # 片段分隔符之前。
-
谢谢 cheeso,你能想到一个潜在的解决方法吗?无需我启用 html5 模式?
-
我不知道“启用 html5 模式”是什么意思,但是……您需要服务器端逻辑来处理 oauth 回调。您需要一个可从 reddit 的服务器访问的 url。我想这意味着 127.0.0.1 是行不通的。此外,您还需要服务器端逻辑来接收请求并使用它做正确的事情,无论您的应用程序的“正确事情”是什么。你不能用 Angular 和 localhost 做所有事情。
-
我不认为这是必需的。至少按照我的要求,Angular 完全有能力接收请求、处理 oAuth 回调并在客户端做正确的事情。我只是想知道如何让 reddit 在 # 之后移动参数。更多关于 html5 模式的角度here