cors - 设置 crossOriginIsolated Svelte 和 SvelteKit

标签 cors svelte sveltekit

我是 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/

相关文章:

c# - Access-Control-Allow-Headers 不允许请求 header 字段 x-user-session

javascript - Svelte - 如何处理生命周期中的 Prop 更新?

server-side-rendering - 在 Sveltekit 上获取上下文 ="module"中的页面参数

svelte - 带有 Sveltekit : no "swiping" 的 Swiper

angular - NGiNX - 没有为错误返回足够的 header (4xx,5xx)与成功(2xx)

rest - Angular2-对预检请求的响应未通过访问控制检查 : No 'Access-Control-Allow-Origin' header is present on the requested resource

java - 使用带有凭据的 $HTTP 在 angularJs 中发布时解决 CORS

javascript - SvelteJS与ReactJS渲染差异(重绘/重排)

javascript - 尝试将 Shopify 的 Draggable 模块与 svelte 一起使用,但没有成功

cloudflare - Sveltekit 开发与 workers KV -- 热重载