首页 > 解决方案 > Access-Control-Allow-Origin: 同源 & recaptcha & YouTube-视频

问题描述

我的网站有问题。我使用了需要 SharedArrayBuffers 的 ffmpeg.wasm。这要求我包含作为标题 Access-Control-Allow-Origin: same-origin。问题是这会阻止我的 YouTube 视频和我的库(如 recaptcha)。我完全不知道如何使用两者。有人对此有任何提示吗?无法从文档中弄清楚。

感谢所有的答案。

<?php
    header('Content-Type: text/html; charset=utf-8');
    header('Access-Control-Allow-Origin: same-origin');
    header('Cross-Origin-Embedder-Policy: require-corp');

    //Just for testing
    header('Access-Control-Allow-Origin: https://www.google.com');
    header('Access-Control-Allow-Origin: https://ajax.googleapis.com');
    header('Access-Control-Allow-Methods: GET');
?>

<html lang="de">
    <head>
        <meta charset="utf-8">
        <title>AtmosFX-Translator Online</title>
        <script src="https://www.google.com/recaptcha/api.js" async defer></script>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    </head>

即使在我的网站上有推荐的标题,我也会从我的 js 中收到我正在使用 SAB 的消息。 在此处输入图像描述

在此处输入图像描述

标签: javascripthttp-headersrecaptchacross-origin-opener-policycross-origin-embedder-policy

解决方案


那是由Cross-Origin-Embedder-Policy: require-corp. 有必要继续使用 SharedArrayBuffer,但您也需要Cross-Origin-Opener-Policy: same-origin

这些是采用“跨域隔离”的要求,这里是如何启用它的指南:https ://web.dev/cross-origin-isolation-guide/


推荐阅读