【发布时间】:2021-09-22 05:30:22
【问题描述】:
我想通过将视频重定向到我的网站来显示该视频。但是当我尝试使用返回重定向时,我得到一个 404 错误。如果我尝试回显而不是返回,它首先输出 URL,然后显示视频。我的问题是为什么当我使用返回时它会给出 404。如何使用返回来完成此操作?
问题不仅在于视频,当我想显示来自谷歌的地图时,我也面临同样的问题。为什么使用返回重定向时会出现 404?
web.php(路由)
Route::middleware([Localization::class])->group(function () {
$lang = RouteLocalization::lang();
$csrf = Config::get('custom.csrf');
Route::get('/', 'Welcome@setWelcome');
Route::group(['middleware' => ['isLogin']], function () use ($lang) {
Route::prefix($lang)->group(function () {
.
.
.
Route::get(__('route.interactivity_preview'), 'Interactivity@get_preview')->name('interactivity_preview');
.
.
.
}
}
}
交互控制器
public function get_preview() {
.
.
.
if (!(strpos($url, 'www.youtube.com/watch') === false)) {
$parts = parse_url($url);
parse_str($parts['query'], $query);
$data['url'] = 'https://www.youtube.com/embed/' . $query['v'];
return redirect()->away($data['url']);
}
.
.
.
}
当我尝试回显而不是返回时,视频会在输出之后显示。
echo redirect()->away($data['url']);
回声输出示例
HTTP/1.0 302 找到缓存控制:无缓存,私有日期:2021 年 7 月 13 日星期二 07:08:46 GMT 位置:https://www.youtube.com/embed/yk-lHYTVJo0 重定向到https://www.youtube.com/embed/yk-lHYTVJo0。重定向到https://www.youtube.com/embed/yk-lHYTVJo0。
如何使用return解决问题,或者如何在使用echo时让视频直接进入而不输出?
【问题讨论】:
-
你是如何使用这条路线的?
-
Route::get(__('route.interactivity_preview'), 'Interactivity@get_preview')->name('interactivity_preview');
-
这是声明,看起来也很奇怪。我更多的是问你是如何使用这条路线的,例如您是否希望用户直接访问路由解析到的 URL?
-
用户未访问该网址。添加的视频显示在网站上。也就是说,视频显示在当前位置,无需离开网站。
-
你的意思是在 iframe 或类似的东西中?