为什么即使我使用 cors 依赖项,获取也会失败?

问题描述 投票:0回答:1

仅使用简单的代码,可以正常工作,但是当我尝试从谷歌控制台获取本地主机时,会显示错误:

fetch('http://localhost:3500/');承诺 {} VM42:1 GET http://localhost:3500/net::ERR_FAILED(匿名)@ VM42:1 VM42:1 未捕获(承诺中)类型错误:无法获取 于:1:1

const express = require("express")
    const app = express();
    const path = require("path");
    const cors = require("cors")
    const PORT = process.env.PORT || 3500;
    app.use(cors())
    app.use(express.urlencoded({extended: false}));
    app.use(express.json());
    app.use(express.static(path.join(__dirname, "/public")));
    app.get('/*', (req, res)=> { // page not found
        res.status(404).sendFile(path.join(__dirname, "views", "404.html"));
    });
    app.listen(PORT, ()=> {
        console.log("Server running on port "+PORT); 
    });
    

enter image description here

node.js express web cors mern
1个回答
0
投票

你似乎有SPA,所以问题是一旦加载了index.html,你实际上正在提供404。

SPAas 通常是在每个请求上发送 index.html,以便 SPA 的路由器来处理它。另外,API 路由处理程序应该在此之前设置。

试试这个。

// setup API routes for frontend router (users, get data and other stuff..)
//app.use('/api', apiHandlers);

// serve SPA on all routes
app.get('/', (req, res)=> {
    res.sendFile(path.join(__dirname, "views", "index.html"));
});

// handle error
app.use((err, req, res, next)=>{
    res.status(404).sendFile(path.join(__dirname, "views", "404.html"));
});
© www.soinside.com 2019 - 2024. All rights reserved.