本人也刚参加工作不久,很多方面理解的还不够深,咱们可以共同探讨一起解决这个问题。
由于你给出的信息,对于我来说,不够全面,比如你node的后台服务配置项信息等等,我只能猜测问题的成因:
1.可能请求产生了跨域,被浏览器同源策略阻止了:
解决方法:
你可以在“vite.config.js”中配置请求代理解决跨域问题
Vite官方代码示例:
server: {
proxy: {
// 字符串简写写法:http://localhost:5173/foo -> http://localhost:4567/foo
'/foo': 'http://localhost:4567',
// 带选项写法:http://localhost:5173/api/bar -> http://jsonplaceholder.typicode.com/bar
'/api': {
target: 'http://jsonplaceholder.typicode.com',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ''),
},
// 正则表达式写法:http://localhost:5173/fallback/ -> http://jsonplaceholder.typicode.com/
'^/fallback/.*': {
target: 'http://jsonplaceholder.typicode.com',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/fallback/, ''),
},
// 使用 proxy 实例
'/api': {
target: 'http://jsonplaceholder.typicode.com',
changeOrigin: true,
configure: (proxy, options) => {
// proxy 是 'http-proxy' 的实例
}
},
// 代理 websockets 或 socket.io 写法:ws://localhost:5173/socket.io -> ws://localhost:5174/socket.io
// 在使用 `rewriteWsOrigin` 时要特别谨慎,因为这可能会让代理服务器暴露在 CSRF 攻击之下
'/socket.io': {
target: 'ws://localhost:5174',
ws: true,
rewriteWsOrigin: true,
},
},
},
注意点:
不知道你前段代码有没有做axios的二次封装,如果做了的话,axios实例的baseURL配置项应该是相对URL,否则axios会直接发起请求,绕过vite.config.js的proxy代理
最后,希望我的回答能帮到你,如果我的回答有错误还请各位斧正。