Функция ответа laravel () неправильно устанавливает источник iframe - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть приложение Laravel 5.7.у меня есть iframe на одной странице с

<iframe src="{{ url('pdf') }}" width="100%" height="80%" 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 Ответ

0 голосов
/ 05 февраля 2019

Приведенное выше объяснение не дает понять, что вы пытаетесь сделать, но посмотрите на эту страницу, чтобы правильно настроить параметры подделки межсайтовых запросов.

Важно понимать, что такое CSRF.По сути, это функция безопасности, которая не позволяет мне копировать ваш HTML, модифицировать его для выполнения чего-то, что вы не намеревались, а затем отправлять запрос с чем-то, что может использовать ваш сайт.

Для того, чтобы заставить вашу логику работатьВам необходимо обойти встроенное промежуточное программное обеспечение CSRF Laravel.Для производственных серверов я бы НЕ удалил его, но для тестирования вы можете просто закомментировать строку, содержащую «\ App \ Http \ Middleware \ VerifyCsrfToken :: class» в файле Kernel.php, и это должно сработать.

...