15

我正在使用 Laravel (4.1.*) 的开发版本,并且有一个我不想要的新默认配置:X-Frame-Options: SAMEORIGIN

目前我通过删除一行来禁用它Illuminate\Http\FrameGuard.php

我正在寻找更好的解决方案。我在 filter.php 文件中尝试过:

App::after(function($request, $response) {
   $response->header('X-Frame-Options', 'ALLOW-ALL');
});

但它只是添加了选项(X-Frame-Options:ALLOW-ALL, SAMEORIGIN),而我需要一个覆盖。

4

2 回答 2

24

Laravel 没有提供任何配置来禁用此功能。

根据Taylor Otwell的说法,绕过它的唯一方法是将以下行添加到启动文件中:

App::forgetMiddleware('Illuminate\Http\FrameGuard');

肮脏的解决方案是评论有罪的行

$response->headers->set('X-Frame-Options', 'SAMEORIGIN', false);

编辑(2014 年 1 月 29 日):来自 Taylor Otwell在 GitHub 上关于下一个 Laravel 政策的新信息。

在 4.2 中默认删除它。应该在后过滤器中 - 将离开 FrameGuard 类,以便人们可以根据需要手动添加中间件。

于 2013-12-15T21:31:23.113 回答
5

header方法的第三个参数应该满足您的需求。

于 2013-11-29T23:12:43.560 回答