Zac*_*ham 6 server-side-rendering svelte sveltekit
我正在构建一个需要从任何来源访问 sveltkit 端点的嵌入。
如果我使用express,我会简单地使用cors中间件。
我很好奇是否有办法在 sveltkit 端点上启用 CORS,这样我就不需要启动另一个服务。
到目前为止我尝试过的一些事情:
从端点中的获取句柄返回“Access-Control-Allow-Origin”:“*”
覆盖 OPTIONS http 方法(似乎从未被调用)
我看到了这个reddit 帖子,但它似乎已经过时了。
我遇到了类似的问题,但无法使用express解决方法。
然而,这对我有用:
const response = new Response(<YOUR_RESPONSE>);
response.headers.append('Access-Control-Allow-Origin', <YOUR_URL>);
return response;
Run Code Online (Sandbox Code Playgroud)
Sveltekit:https://kit.svelte.dev/docs/web-standards#fetch-apis-headers
MDN: https: //developer.mozilla.org/en-US/docs/Web/API/Headers
我想到了!
根据您使用的 sveltkit 适配器,答案会有所不同。就我而言,我使用的是节点适配器,实际上可以从 Express 提供 svelte 应用程序并在那里启用 cors 中间件:
// this is file exported by the node adapter plugin
import { handler } from './build/handler.js';
import express from 'express';
import cors from 'cors';
const app = express();
app.use(cors());
// add a route that lives separately from the SvelteKit app
app.get('/healthcheck', (req, res) => { res.end('ok'); });
// let SvelteKit handle everything else, including serving prerendered pages and static assets app.use(handler);
app.listen(3000, () => { console.log('listening on port 3000'); });
Run Code Online (Sandbox Code Playgroud)
这是节点适配器文档中“自定义服务器”示例的修改: https: //kit.svelte.dev/docs/adapter-node#custom-server
| 归档时间: |
|
| 查看次数: |
10378 次 |
| 最近记录: |