我做了一些研究,发现了与此问题类似的帖子,但没有一种解决方案对我有用。
我用create-react-app创建了一个React应用,然后我创建了一个server.js文件来拥有一个Express Node服务器。我已经按照一些教程进行了操作,看来我可以在同一app / build中使用我的react app和express服务器。
在本地,一切正常,我到达了api路由。但是,当我在服务器上部署应用程序的构建时,我所有的axios请求响应都是我应用程序的index.html文件。代码中不允许axios请求到达我的api的问题是什么?
这是代码:
server.js
const connection = require("./conf");
const path = require("path");
const app = express();
app.use(express.json());
app.use(
express.urlencoded({
extended: true,
})
);
app.post("/api/user", (req, res) => {
const formData = req.body;
connection.query("INSERT INTO user SET ?", formData, (err, results) => {
if (err) {
res.status(500).send("Error");
} else {
res.sendStatus(200);
}
});
});
app.get("/", (req, res) => {
res.sendFile(path.join(__dirname, ".build/index.html"));
});
app.listen(8080, () =>
console.log("Express server is running on localhost:8080")
);
带有axios的Mail.js
axios
.post(
"/api/user",
{
email: "xxx",
name: "xxx"
},
{ withCredentials: true }
)
.then((response) => {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
和axios的响应
{data: "<!doctype html><html lang="en"><head><meta charset…s/main.f398f833.chunk.js"></script></body></html>", status: 200, statusText: ""
在控制台中,我有一个很好的网址:
xhr.js:178 XHR finished loading: POST "https://www.mywebsite.com/api/user".
如果我将此URL放在浏览器中,则会有一个空白页,就像当我将URL放在前端React Router之外时一样。
感谢您的帮助!
答案 0 :(得分:0)
您是否将proxy放在package.json中或设置了axios的baseURL