Javascript Rails 5:获取当前URL并发送回后端

Javascript Rails 5:获取当前URL并发送回后端,javascript,ruby-on-rails,Javascript,Ruby On Rails,因此,我理解,为了在浏览器上获得完整的URL,您需要javascript,例如: var url = window.location.href; 默认情况下,这将获得完整的URL,如: http://localhost:3000/contacts/#reference http://localhost:3000/contacts/item 如果我将上述javascript代码放在我的application.js文件中,我将如何在服务器端调用它,比如在我的/helpers/applicatio

因此,我理解,为了在浏览器上获得完整的URL,您需要javascript,例如:

var url = window.location.href;
默认情况下,这将获得完整的URL,如:

http://localhost:3000/contacts/#reference
http://localhost:3000/contacts/item
如果我将上述javascript代码放在我的
application.js
文件中,我将如何在服务器端调用它,比如在我的
/helpers/application\u helper.rb
文件中

我还需要将javascript放入函数中才能访问它吗

请帮忙

编辑:


request.fullpath
request.original\u url
对特殊锚字符(如
http://localhost:3000/contacts/#reference
这就是我为什么要问如何将js传递到服务器端的原因

您是否正在运行一个使用.erb作为视图的完整堆栈rails应用程序?需要更多信息…因为通常在rails中,后端会知道您的URL是什么?你需要通过路由器才能到达那里。除非您从客户机服务器对rails进行一些api调用?

您是否正在运行一个使用.erb作为视图的完整堆栈rails应用程序?需要更多信息…因为通常在rails中,后端会知道您的URL是什么?你需要通过路由器才能到达那里。除非您从客户端服务器对rails进行一些api调用?

要在
/helpers/application\u helper.rb
中获取当前URL,您需要编写rails代码,如下所示:

def get_current_url
  request.original_url
end
如果您想了解更多详细信息,请查看文档

如果你想从js获得价值

在application.js中

function get_url {
 var url = window.location.href;
}
在应用程序中\u helper.rb

def get_full_url_helper
 javascript_tag(
     "get_url()\";"
 )
end

要在
/helpers/application\u helper.rb
中获取当前URL,您需要编写如下rails代码:

def get_current_url
  request.original_url
end
如果您想了解更多详细信息,请查看文档

如果你想从js获得价值

在application.js中

function get_url {
 var url = window.location.href;
}
在应用程序中\u helper.rb

def get_full_url_helper
 javascript_tag(
     "get_url()\";"
 )
end

如果您只是想从fullstack rails应用程序的后台获取当前url,请查看此处的回复谢谢我在发布此问题之前已经阅读了此内容,这对我没有帮助。如果您只是想从fullstack rails应用程序的后台获取当前url,请查看此处的回复谢谢我已经阅读了此内容在我发布这个问题之前,这对我没有帮助。#之后的Url部分称为锚,它不会发送到服务器,而是完全在浏览器中处理(默认情况下,它滚动到具有相同id的元素,通常SPA会重载它以获得类似的效果)。在用户地址栏中获取完整页面位置的唯一方法是从javascript window.location获取它,然后以某种方式发送到后端。
request。原始url
是服务器端。它将忽略
#
或特殊字符。我甚至尝试了这个方法,并得到了一个未定义的方法错误。用户“javascript_tag”在rails serverUrl部分中获取函数值,在#被称为锚之后,它不会发送到服务器,而是完全在浏览器中处理(默认情况下,它滚动到具有相同id的元素,并且通常由SPA重载以获得类似的效果)。在用户地址栏中获取完整页面位置的唯一方法是从javascript window.location获取它,然后以某种方式发送到后端。
request。原始url
是服务器端。它将忽略
#
或特殊字符。我甚至尝试了这个方法,但得到了一个未定义的方法错误。在rails服务器中获取函数值的用户“javascript_tag”浏览器不会将url的哈希段发送到服务器。因此,如果您单击一个名为
example.com/foo#bar
的链接,服务器将获得请求
example.com/foo
。这不仅适用于Rails,也适用于任何语言/框架。如果要将URL中的数据传递给服务器,则需要将其放置在查询字符串中。你能重新措辞你的问题,使它不是一个问题吗?不要太关注如何解决问题,而是告诉我们您试图解决的实际问题是什么。浏览器不会将url的哈希段发送到服务器。因此,如果您单击一个名为
example.com/foo#bar
的链接,服务器将获得请求
example.com/foo
。这不仅适用于Rails,也适用于任何语言/框架。如果要将URL中的数据传递给服务器,则需要将其放置在查询字符串中。你能重新措辞你的问题,使它不是一个问题吗?不要太关注如何解决问题,而是告诉我们您试图解决的实际问题是什么。