ERROR [nuxt] [request error] [unhandled] [500] fetch failed
ERROR [nuxt] [request error] [unhandled] [500] fetch failed
at Object.fetch (node:internal/deps/undici/undici:11118:11)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async sendProxy (./node_modules/.pnpm/h3@1.11.1/node_modules/h3/dist/index.mjs:1157:20)
at async ./node_modules/.pnpm/h3@1.11.1/node_modules/h3/dist/index.mjs:1962:19
at async Object.callAsync (./node_modules/.pnpm/unctx@2.3.1/node_modules/unctx/dist/index.mjs:72:16)
at async Server.toNodeHandle (./node_modules/.pnpm/h3@1.11.1/node_modules/h3/dist/index.mjs:2249:7)
触发此错误代码
demo.vue
async foo() {
const resData = await useFetch(`/api/good/1`, {
method: 'DELETE',
});
}
nuxt.config.ts
export default defineNuxtConfig({
nitro: {
routeRules: {
"/api/**": {
proxy: `${env.NUXT_API_URL}api/**`,
},
}
}
临时解决方案
把请求方式改为 POST
请求。
async foo() {
const resData = await useFetch(`/api/good/1`, {
method: 'POST',
});
}
网上有说是这些情况:
- 代理域名
http
、https
的问题,测试过不是这个问题,和域名无关。- 排查域名请求日志,出现此问题时,请求日志没有记录,说明请求没有到达后端,是前端请求问题。
- 尝试改下请求方式,发现
POST
请求正常,DELETE
请求报错,也许是请求方式问题,但是不确定,先临时解决一下。
- 降级
h3@1.9.0
版本,降级后,问题依然存在。 - 降级
nuxt@3.10.3
版本,降级后,问题依然存在。