SvelteKit中使用+page.js获取外部CSV资源时出现CORS错误,但+page.server.js可正常请求的问题咨询
SvelteKit中使用+page.js获取外部CSV资源时出现CORS错误,但+page.server.js可正常请求的问题咨询
我翻了好多类似问题,但都没能用直白的大白话帮我搞懂这个基础问题。我现在在SvelteKit项目里尝试读取一个外部CSV文件,过程中遇到了CORS相关的难题,想请教各位大佬:
我一开始在+page.js的load函数里写了这段代码:
//+page.js import Papa from 'papaparse'; export async function load({ fetch }) { const res = await fetch( 'https://sites.ecmwf.int/data/climatepulse/data/series/era5_daily_series_2t_global.csv' ).then((r) => r.text()); const { data } = Papa.parse(res, { header: true }); return { data }; }
结果在启动开发服务器的终端里收到了这个错误:
Error: CORS error: No 'Access-Control-Allow-Origin' header is present on the requested resource at universal_fetch (<path....>node_modules/@sveltejs/kit/src/runtime/server/page/load_data.js:257:12) at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
我自己琢磨着几个点,想确认下:
- 是不是因为
localhost发起的请求被目标资源拒绝了?那是不是我这边根本没办法解决,只能等对方服务器修改配置? - 如果我把这段请求代码放到
+page.server.js里,是不是因为请求是从我的Node服务器发出去的,就可以正常获取资源?然后我还能把拿到的数据传给前端? - 还有个特别让我困惑的地方:我用R的
read_csv函数读取这个文件完全没问题,一点障碍都没有,为什么前端用fetch就不行呢?
备注:内容来源于stack exchange,提问作者Lenn
相关产品推荐
相关产品推荐

