Отказался отображать фрейм, потому что он установил «X-Frame-Options» на «sameorigin» - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь установить iframe в ionic3, но столкнулся с этой проблемой. Отказался отображать фрейм веб-страниц.

Это мой код.

 <ion-content>
      <div #frame style="width:100%; height:100%; overflow:scroll !important;-webkit-overflow-scrolling:touch !important">
        <iframe [src]="url" class="iframe" scrolling="yes" ></iframe>
      </div>
    </ion-content>

 onInput() {
    this.open = true;
    this.url = this.domSanitizer.bypassSecurityTrustResourceUrl('https://www.youtube.com/embed/results?search_query=' + this.myInput);
}

Ответы [ 3 ]

0 голосов
/ 25 апреля 2018

Попробуйте добавить это в ваш файл config.xml в обоих разделах платформы

    <allow-navigation href="*" />
    <allow-navigation href="https://*youtube.com/*" />
0 голосов
/ 03 мая 2018

Когда вы отправляете запрос типа GET , POST , iframe (GET) и т. Д. Ваш браузер или WebView по умолчанию добавляет заголовок в "Запрос"Заголовки "с именем "origin".Этот заголовок, МОЖЕТ изменить.

В вашем случае я вижу, что URL, который вы пытаетесь вставить, это: "https://www.youtube.com/embed/results?search_query= + this.myInput", но в документации Youtube говорится, что URL должен быть: "http://www.youtube.com/embed/VIDEO_ID?origin=http://yourPage.com".

Когда вы используете <iframe> с Youtube, ВСЕГДА вы должны отправлять источник в параметрах ссылки.

origin: Этот параметр обеспечивает дополнительную меру безопасности для API IFrameи поддерживается только для встраивания IFrame.Если вы используете API IFrame, что означает, что вы устанавливаете значение параметра enablejsapi равным 1, вы всегда должны указывать свой домен в качестве значения параметра origin.https://developers.google.com/youtube/player_parameters?hl=en-419#origin

Здесь у вас есть ссылка на документацию Youtube: https://developers.google.com/youtube/player_parameters?hl=en-419

Привет!

0 голосов
/ 25 апреля 2018

Youtube установил X-FRAME-OPTIONS в SAMEORIGIN в своем заголовке ответа, что означает, что только сайты с таким же происхождением, что и у Youtube (youtube.com), могут загружать этот сайт в iframe или объект.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options

Вам нужно будет встроить видео так, как этого хочет Youtube.

...