尝试使用expressJS重定向时“被CORS策略阻止”

Sah*_*ata 7 javascript express

我在尝试使用 ExpressJS 重定向时遇到问题,我制作了一个登录系统来获取发布请求,如果用户存在,则页面应该重定向,但 Cors 却阻止了它。

这是请求:

router.post('/login', async (req, res) => {

    try{    
       let usersData = await  getFiles(__dirname + '/users.json');
       let parsedUsers = JSON.parse(usersData);
       let userChecker;
       for(let i = 0; i < parsedUsers.length; i++){
       if(parsedUsers[i].userName === req.body.userName){
           userChecker = 1;
           break;
       } 
       }

       if(!userChecker){
        console.log(`${req.body.userName} Not exist`);}

        else {
        console.log(`${req.body.userName} Approved`);
        res.redirect('/')
       }
        }
     catch (err) {
      if(err) throw err
    };
})
Run Code Online (Sandbox Code Playgroud)

这是它在控制台发送的错误:

Access to fetch at 'http://localhost:3001/users/login' (redirected from 'http://localhost:4000/users/login') from origin 'null' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
Run Code Online (Sandbox Code Playgroud)

谁能告诉我那个cors有什么问题吗?

gpr*_*our 0

这是因为您的项目中尚未允许 CORS(跨源资源共享)。您可以为此安装cors包。

npm install cors
Run Code Online (Sandbox Code Playgroud)

然后这样做,

app.use(cors()) // It will enable all cors requests
Run Code Online (Sandbox Code Playgroud)

就是这样。你现在可以走了。这是处理cors的最简单的方法。