我正在开发一个实现Faraday构建URL的库的分支。
site = "https://example.io/#/"
path = "oauth/authorize"
connection = Faraday.new(site)
resource = Faraday::Utils.URI(path)
URL = connection.build_url(resource)
请注意,我的网站网址以hashbang结尾。但是当执行上面的代码时,法拉第完全删除了hashbang:
但我的应用程序要求它构建此URL(使用hashbang):
现在,在我撕掉法拉第和猴子修补一些可怕的东西之前......我可以通过在法拉第设置一个选项来做到这一点吗?
答案 0 :(得分:2)
我认为这里的答案是退出尝试在法拉第中保留URL的哈希部分,因为HTTP请求会忽略该部分。
URL的哈希部分(也称为URI"片段标识符")永远不会发送到服务器。它只能在客户端有意义。通常,当HTTP客户端是Web浏览器时,片段标识符包含要滚动到的元素的名称。或者,hashbang技巧可以与一些JavaScript交互一起使用。
但是在法拉第中使用这样的URL并不合理,因为哈希部分永远不会被发送到服务器。
答案 1 :(得分:0)
在路径变量中使用'#'而不是站点变量我可以根据需要获得输出。
site = "https://example.io/"
path = "#/oauth/authorize"
connection = Faraday.new(site)
resource = Faraday::Utils.URI(path)
URL = connection.build_url(resource)
请尝试上面的代码,让我知道结果。