我是 Svelte 和 SvelteKit 的新手,在尝试执行 worker 时遇到此错误:
Uncaught DOMException: Failed to execute 'postMessage' on 'Worker': SharedArrayBuffer transfer requires self.crossOriginIsolated.
我知道我需要设置 header (我正在从 React 迁移到 Svelte),但是如何/在哪里设置 header ?
最佳答案
所以解决方案是在 “svelte.config.js” 中设置 Vite 的 “configureServer”(这里是 Vite documentation 的链接)。实现看起来像这样:
import adapter from '@sveltejs/adapter-auto';
/** @type {import('vite').Plugin} */
const viteServerConfig = {
name: 'log-request-middleware',
configureServer(server) {
server.middlewares.use((req, res, next) => {
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Methods", "GET");
res.setHeader("Cross-Origin-Opener-Policy", "same-origin");
res.setHeader("Cross-Origin-Embedder-Policy", "require-corp");
next();
});
}
};
/** @type {import('@sveltejs/kit').Config} */
const config = {
kit: {
adapter: adapter(),
vite: {
plugins: [viteServerConfig]
}
}
};
export default config;
关于cors - 设置 crossOriginIsolated Svelte 和 SvelteKit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72755269/