覆盖HTTP标头的默认设置(X-FRAME-OPTIONS)

时间:2013-11-29 20:44:46

标签: laravel http-headers laravel-4 x-frame-options

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

暂时我将其停用by deleting one line in Illuminate\Http\FrameGuard.php

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

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

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

2 个答案:

答案 0 :(得分:24)

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

根据Taylor Otwell,绕过它的唯一方法是在开始文件中添加以下行:

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

肮脏的解决方案是评论guilty line

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

编辑(2014年1月29日):Taylor Otwell on GitHub关于Laravel政策的新信息。

  

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

答案 1 :(得分:5)

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