gpt4 book ai didi

php - Laravel 拒绝在 iFrame 中显示为 "' X-Frame-Options' to 'SAMEORIGIN'。”

转载 作者:可可西里 更新时间:2023-11-01 13:38:23 25 4
gpt4 key购买 nike

所以我在 Laravel 中构建了一个表单并在外部托管,但我想在 HTML 页面中显示它,但 X-Frame-Options 有问题。

准确的错误信息是:

Refused to display 'url' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.

我在之前的 StackOverflow 回答中看到这是由于 FrameGuard Middleware 造成的,但此后已被删除并且问题代码行不在该文件中。

Laravel 版本 5.3。

我还尝试使用 flooring 在 Nginx 配置文件中设置 X-Frame-Options,但没有结果:

sed -i 's/http\ {/http\ {\nadd_header X-Frame-Options SAMEORIGIN, false;\n\n/' /etc/nginx/nginx.conf

此错误在多个浏览器中发生,已测试:Chrome 和 Safari

最佳答案

在框架的响应上设置标题

X-Frame-Options: ALLOW-FROM https://example.com/

其中 example.com 是请求表单的域。

你可以在 laravel 中使用中间件来做到这一点。

生成一个新的中间件。

php artisan make:middleware FrameHeadersMiddleware

然后在您刚刚创建的中间件的句柄函数中执行如下操作:

namespace App\Http\Middleware;
use Closure;

public function handle($request, Closure $next)
{
$response = $next($request);
$response->header('X-Frame-Options', 'ALLOW FROM https://example.com/');
return $response;
}

然后您可以将其添加到 Kernel.php 中的中间件数组之一

protected $middleware = [
App\Http\Middleware\FrameHeadersMiddleware::class
];

或者如果您只想将它​​添加到特定路由,则添加到中间件组数组之一。

关于php - Laravel 拒绝在 iFrame 中显示为 "' X-Frame-Options' to 'SAMEORIGIN'。”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41771125/

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