我已經使用“SharedArrayBuffer”(ffmpeg.wasm)構建了一個 React 17.0.2 應用程式,該應用程式具有依賴關系。根據檔案,這需要這些回應標頭:
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
我通過 Tomcat 10 為 React 應用程式提供服務。如何修改默認 web.xml 以包含這些標頭?
更新1:
我發現了一些我認為可以發送這些標頭的檔案,我只是不知道要放入什么web.xml來實作它。
該檔案說要在 Tomcat 上啟用 CORS,您可以使用過濾器標簽。它還說,“這個過濾器是 W3C 的 CORS(跨源資源共享)規范的實作”。他們參考的規范包括這兩個標頭:
- 跨域開啟者策略
- 跨域嵌入策略
解決方案:
由于沒有本地方式來發送這些回應標頭,因此我不得不使用此代碼來添加它們。我運行 git clone,確保設定了 CATALINA_HOME,運行 make.sh,將生成的 .jar 移動到 Tomcat 中的 lib/ 目錄,并將權限與周圍的 jar 匹配。我在 web.xml 中撰寫了兩個過濾器并重新啟動了 Tomcat。
<filter>
<filter-name>OpenerPolicyHeaderFilter</filter-name>
<filter-class>StaticHeaders</filter-class>
<init-param>
<param-name>Cross-Origin-Opener-Policy</param-name>
<param-value>same-origin</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>OpenerPolicyHeaderFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>EmbedderPolicyHeaderFiler</filter-name>
<filter-class>StaticHeaders</filter-class>
<init-param>
<param-name>Cross-Origin-Embedder-Policy</param-name>
<param-value>require-corp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EmbedderPolicyHeaderFiler</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
uj5u.com熱心網友回復:
CORS 過濾器只處理Access-Control-*標頭,不對Cross-Origin-*標頭做任何事情。
如果您希望設定Cross-Origin-*標頭,您要么必須自己管理,要么向 Tomcat 專案提交拉取請求。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/447546.html
