gpt4 book ai didi

ruby-on-rails - 有没有办法知道页面请求是否来自同一个应用程序?

转载 作者:行者123 更新时间:2023-12-04 22:07:26 25 4
gpt4 key购买 nike

在 Rails3 中,有没有办法检查我现在呈现的页面是否是从同一个应用程序请求的,而不使用硬编码的域名?

我目前有:

def back_link(car_id = '')
# Check if search exists
uri_obj = URI.parse(controller.request.env["HTTP_REFERER"]) if controller.request.env["HTTP_REFERER"].present?
if uri_obj.present? && ["my_domain.com", "localhost"].include?(uri_obj.host) && uri_obj.query.present? && uri_obj.query.include?('search')
link_to '◀ '.html_safe + t('back_to_search'), url_for(:back) + (car_id.present? ? '#' + car_id.to_s : ''), :class => 'button grey back'
end
end

但这不会检查“www”。在域和所有其他可能的情况下。

如果我能找出上一页(引用者)中使用的特定 Controller 和操作,那也很好。

最佳答案

我认为你看错了。

如果您环顾网络,找到一个具有搜索功能的站点,然后点击链接,您将看到一个显示搜索内容的参数。

这是一个很好的方法。

这样做 HTTP_REFERER似乎有点脆弱,并且无法使用,例如,从书签或已发布的链接。

例如。

/cars/12?from_search=sports+cars

然后你可以查一下 params[:from_search]
如果您确实需要通过 HTTP_REFERER 来做那么您可能不必担心子域。只是;
def http_referer_uri
request.env["HTTP_REFERER"] && URI.parse(request.env["HTTP_REFERER"])
end

def refered_from_our_site?
if uri = http_referer_uri
uri.host == request.host
end
end

def refered_from_a_search?
if refered_from_our_site?
http_referer_uri.try(:query)['search']
end
end

关于ruby-on-rails - 有没有办法知道页面请求是否来自同一个应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7890668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com