laravel response() 函数未正确设置 iframe 原点
Posted
技术标签:
【中文标题】laravel response() 函数未正确设置 iframe 原点【英文标题】:laravel response() function is not setting iframe origin properly 【发布时间】:2019-06-28 14:51:12 【问题描述】:我有一个 laravel 5.7 应用程序。我在一个页面中有一个 iframe
<iframe src=" url('pdf') " id="frame_id" name="test_frame"></iframe>
什么时候
Route::get('/pdf', function ()
return 'abc';
);
然后我在控制台里面写
window.frames["frame_id"].contentWindow.origin => http://cms.test
但是当
Route::get('/pdf', function ()
return response()->file('test.pdf');
);
然后
window.frames["frame_id"].contentWindow.origin
=> SecurityError: Permission denied to access property "origin" on cross-origin object
为什么在这两种情况下原点都在变化?我该如何解决这个问题,因为由于跨域我无法操作 iframe dom
【问题讨论】:
【参考方案1】:上面的解释并没有说明您要做什么,但请查看this 页面了解如何正确配置跨站点请求伪造设置。
了解什么是 CSRF 很重要。它本质上是一种安全功能,可防止我复制您的 html、修改它以执行您不希望的操作,然后发送包含可能利用您网站的内容的请求。
为了让你的逻辑工作,你需要绕过 Laravel 内置的 CSRF 中间件。对于生产服务器,我不会删除它,但对于测试,您可以在 Kernel.php 文件中注释掉包含“\App\Http\Middleware\VerifyCsrfToken::class”的行,这样就可以了。
【讨论】:
我也禁用了它。没有效果以上是关于laravel response() 函数未正确设置 iframe 原点的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Response::download 不起作用,单击按钮时未下载 pdf 文件
如何正确设置 PhpStorm? Сan't run PHPUnit on Laravel 8 on Windows 10. 调用未定义函数 Tests\Unit\is_id_term()