SvelteKit通过href访问Endpoint前端报错问题咨询
问题分析与解决
这种情况不正常,属于操作疏漏。SvelteKit默认会拦截<a>标签的跳转,尝试用客户端路由(SPA模式)处理,但/api/test是服务器端点,不属于页面路由范畴,客户端路由无法识别该路径,因此会抛出控制台报错,尽管服务器能正常接收并处理请求。
解决方法
- 给
<a>标签添加rel="external"属性,明确告知SvelteKit不要拦截该跳转,直接走传统浏览器导航:<a href="/api/test" rel="external">TEST ME</a> - 或者添加
data-sveltekit-preload-data="off"属性,禁用该链接的预加载逻辑,避免客户端路由尝试处理:<a href="/api/test" data-sveltekit-preload-data="off">TEST ME</a>
补充说明
SvelteKit的客户端路由仅负责处理指向页面路由(即src/routes下对应+page.svelte的路径)的<a>标签,实现无刷新跳转。而API端点是服务器端专属的资源路径,不属于页面路由体系,必须显式标记让SvelteKit跳过客户端路由处理,否则就会出现前端报错的情况。
内容的提问来源于stack exchange,提问作者Ben Quan
相关产品推荐
相关产品推荐

