【发布时间】:2022-02-08 17:39:17
【问题描述】:
我在使用一个非常简单的应用时遇到了 CORS 问题,我花了大约 10 分钟来编写它,并且我花了几个小时试图修复这个 CORS 错误。
用 React 编写的前端使用 axios 向 Express 后端发出 POST 请求。
app.use(cors()) 在我的 Express 应用中的单个路由之前调用。
这是我的 React 应用程序中的 axios 请求:
(await axios.post("http://localhost:3000/login", {username: username, password: password})).data.success
我收到了这个 CORS 错误:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at...
不过,localhost 上一切正常。
快递代码:
require('dotenv').config();
const createError = require('http-errors');
const express = require('express');
const cors = require('cors');
const compression = require('compression');
const app = express();
app.use(cors({origin: "*", allowedHeaders: ['Content-Type']}));
app.use(express.json());
app.use(compression());
app.use(express.urlencoded({extended: true}));
app.post("/login", (req, res) => {
const params = req.body;
if (params.username === process.env.USERNAME && params.password === process.env.PASSWORD)
return res.json({success: true});
else
return res.status(401).json({success: false});
});
app.use((req, res, next) => next(createError(404)));
app.listen(process.env.NODE_PORT, () => console.log("Listening on port " + process.env.NODE_PORT));
当前的、不理想的可行解决方案:
使用机器的 IP 而不是localhost。
(await axios.post("http://192.168.*.*:3000/login", {username: username, password: password})).data.success
【问题讨论】:
-
能不能给个快递码
-
刚刚在@SeanLawton的问题中添加了
-
您可以排除本地域或仅使用this extension 进行开发。
-
如何排除本地域? @mamady
-
@Alexandre This 应该会有所帮助。
标签: javascript reactjs express cors