Php 返回重定向,主体位于Laravel中
我正试图在拉雷维尔对尸体进行重定向。我试过这个:Php 返回重定向,主体位于Laravel中,php,laravel,redirect,laravel-5,laravel-5.1,Php,Laravel,Redirect,Laravel 5,Laravel 5.1,我正试图在拉雷维尔对尸体进行重定向。我试过这个: return Redirect::to($log_in_url)->with('body','<html><head><title>Redirecting to your page</title></head><body>If you are not redirected within 5 seconds, please <a href="'.$log_in_ur
return Redirect::to($log_in_url)->with('body','<html><head><title>Redirecting to your page</title></head><body>If you are not redirected within 5 seconds, please <a href="'.$log_in_url.'">cl ick here</a>.</body></html>');
return Redirect::to($log_in_url)->带有('body','Redirecting to your pageIf your not redirective in 5秒内,please');
我在“网络”选项卡中查看,实际上什么也看不到
问题是,在实际重定向发生之前,如何通过显示HTML等待页面来进行延迟重定向 这不是拉威尔的任务。您可以使用meta或javascript返回页面
// Controller
return view('redirect');
// View redirect.blade (Regular html page with additional meta tag)
<meta http-equiv="refresh" content="5;url=http://www.google.com/" />
//控制器
返回视图(“重定向”);
//View redirect.blade(带有附加元标记的常规html页面)
这不是拉威尔的任务。您可以使用meta或javascript返回页面
// Controller
return view('redirect');
// View redirect.blade (Regular html page with additional meta tag)
<meta http-equiv="refresh" content="5;url=http://www.google.com/" />
//控制器
返回视图(“重定向”);
//View redirect.blade(带有附加元标记的常规html页面)
你做了一些错误的假设:
方法将对象放入会话中,以便您可以在重定向后访问它。一个常见的用例是设置消息,然后重定向用户李>with
- 不要仅仅通过设置东西
来期待魔力李>body
- 正如你所说,没有所谓的“身体重定向”这样的标准化重定向。如果你需要这样的东西,你就必须实现它李>
- 不要仅仅通过设置东西
redirect.blade.php
:
<!doctype html>
<html lang="en">
<head>
<title>Redirecting...</title>
<script>
window.setTimeout(function () {
window.location = "{{ $url }}";
}, 5000);
</script>
</head>
<body>
If you are not redirected within 5 seconds,
please <a href="{{ $url }}">click here</a>.
</body>
</html>
如果禁用JavaScript,这种重定向方式将不起作用,这就是为什么他们在页面内容中添加链接并警告用户
有些采取混合方法:
<noscript>
<meta http-equiv="refresh" content="5;url={{ $url }}" />
</noscript>
它们不使用refresh header/meta标记的原因首先是HTTP标准中没有指定它
我强烈建议你考虑其他选择。这是1990年的事,一点也不友好 作为一个访问者,如果我和一个让我等5秒钟的网站打交道,我就会离开。这就是为什么人们习惯于使用浏览器扩展来解决vBulletin的登录屏幕等待时间
拥抱简单,只需执行常规HTTP重定向。这对全人类都是最好的 你在做一些错误的假设:
方法将对象放入会话中,以便您可以在重定向后访问它。一个常见的用例是设置消息,然后重定向用户李>with
- 不要仅仅通过设置东西
来期待魔力李>body
- 正如你所说,没有所谓的“身体重定向”这样的标准化重定向。如果你需要这样的东西,你就必须实现它李>
- 不要仅仅通过设置东西
redirect.blade.php
:
<!doctype html>
<html lang="en">
<head>
<title>Redirecting...</title>
<script>
window.setTimeout(function () {
window.location = "{{ $url }}";
}, 5000);
</script>
</head>
<body>
If you are not redirected within 5 seconds,
please <a href="{{ $url }}">click here</a>.
</body>
</html>
如果禁用JavaScript,这种重定向方式将不起作用,这就是为什么他们在页面内容中添加链接并警告用户
有些采取混合方法:
<noscript>
<meta http-equiv="refresh" content="5;url={{ $url }}" />
</noscript>
它们不使用refresh header/meta标记的原因首先是HTTP标准中没有指定它
我强烈建议你考虑其他选择。这是1990年的事,一点也不友好 作为一个访问者,如果我和一个让我等5秒钟的网站打交道,我就会离开。这就是为什么人们习惯于使用浏览器扩展来解决vBulletin的登录屏幕等待时间
拥抱简单,只需执行常规HTTP重定向。这对全人类都是最好的 Laravel没有将
with
放在重定向的主体中,而是将其放在会话中,并在重定向后与视图共享(因此,当您被重定向时,它是可用的)。这有点误导,但我不知道任何现代浏览器会真正看到重定向文本。我的建议是回滚一点,考虑一下你正在尝试做什么,这将保证需要一个带有HTML正文的重定向响应。这感觉像是一个@apokryfos,这确实是XY问题的一个例子。我编辑了这个问题,试着让它更清楚一点。这里是一个很好的阅读工具。Lavel不会将with
放在重定向的主体中,它实际上会将它放在会话中,并在重定向后与视图共享它(因此在重定向时它是可用的)。这有点误导,但我不知道任何现代浏览器会真正看到重定向文本。我的建议是回滚一点,考虑一下你正在尝试做什么,这将保证需要一个带有HTML正文的重定向响应。这感觉像是一个@apokryfos,这确实是XY问题的一个例子。我编辑了这个问题,试着让它更清楚一点。这是一本很好的书