我正在构建一个Chrome扩展程序,我在Gmail主页的弹出窗口中显示iframe。由于Gmail主页采用HTTPS格式,因此我的iframe也应采用https格式。我通过启用mod_ssl配置了apache2,并在apache2上运行了HTTPS。我制作了一个原生的PHP页面,并尝试在Gmail页面上的框架上显示该页面。我没有遇到从localhost加载页面的问题。但是,当我想使用Laravel后端时,它向我显示错误。
Refused to display 'https://localhost/laravel/laravel/public/index.php/chromelogin' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.
任何建议??
答案 0 :(得分:7)
在bootstrap/start.php
文件中添加以下行:
$app->forgetMiddleware('Illuminate\Http\FrameGuard');
答案 1 :(得分:1)
您可以创建服务提供者并将其放在register()函数
中$this->app->forgetMiddleware('Illuminate\Http\FrameGuard');
这样,如果您不想为整个应用程序禁用它,就可以输入逻辑。
答案 2 :(得分:1)
默认情况下在4.2中删除它。应该在后过滤器中 - 将离开FrameGuard类,以便人们可以根据需要手动添加中间件。
您可以确认这一点如果您查看源代码或搜索项目文件夹,以便您可以看到该类仍在Illuminate\Http\Middleware
下,但唯一的引用位于vendor/laravel/framework/src/Illuminate/Foundation/Console/Optimize/config.php
:
$basePath.'/vendor/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php',