如何从Sinatra中的特定页面重定向网页?

How to redirect web page from a specfic page in Sinatra?(如何从Sinatra中的特定页面重定向网页?)
本文介绍了如何从Sinatra中的特定页面重定向网页?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Sinatra中,如何从特定页面重定向网页?

require 'sinatra'

get "/A" do
    redirect '/B' 
end

get "/B" do 
    # if comes from A
    #     "IT COMES FROM A"    
    # else not from A
    #     "NOT FROM A , REDIRECT TO C"
    #     redirect '/C'
    # end
end

我想学习如何执行此操作?

我可以使用JavaScript或HTML来做我想做的事情吗?

或者,必须在Sinatra完成?


我试过了,但仍然为空

get "/B" do
    mypath = URI(request.referer || '').path
    if mypath == '/A'
      "hi i am b , u come from a"
    else
      "--#{request.referrer}--"
      redirect '/C'
  end
end

推荐答案

Http Referrer信息可通过:

request.referrer

但如果它是由服务器发起的重定向,则不能算作对目标页面的引用。简而言之:

如果/A因为服务器告诉客户端页面已移动(状态302)而重定向到/B,则引用人不是/A,而是链接到/A的页面;如果直接请求/A,则不是链接到/A的页面。

回答这个问题:您必须使用客户端重定向来实现您的想法。JavaScript可以做到这一点(放在/A上):

<script type="text/javascript">window.location = '/B';</script>

这篇关于如何从Sinatra中的特定页面重定向网页?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)