js,如果你在客户端把'post'方法改为'get',它可以正常工作,但是404错误只出现在'post'方法中.我可以知道为什么吗?
P.S.很多人说这个问题是由于在服务器上找不到路径'/api/insert/'造成的,但我不认为这是因为当你改为'get'方法时它工作得很好。
- 客户端代码
const writePost = async () => {
axios.defaults.withCredentials = true;
const config = {
headers: {
withCredentials: true,
},
body: {
title: writeData.title,
content: writeData.content,
register: writeData.register,
},
};
try {
//Successful response
await axios
.post("http://localhost:8000/api/insert", config)
.then((res) => {
console.log(res);
console.log(res.config);
});
} catch (error) {
//Failed to respond
console.log("write error", error);
}
};
- 节点码
const cors = require("cors");
const express = require("express");
const app = express();
const mysql = require("mysql");
const PORT = process.env.port || 8000;
const bodyParser = require("body-parser");
const db = mysql.createPool({
host: "",
user: "",
password: "",
database: "",
});
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cors({ credentials: true, origin: true }));
app.post("/api/insert", (req, res) => {
var title = req.body.title;
var content = req.body.content;
var register = req.body.register;
const sqlQuery =
"INSERT INTO BOARD (BOARD_TITLE, BOARD_CONTENT, REGISTER_ID) VALUES (?,?,?);";
db.query(sqlQuery, [title, content, register], (err, result) => {
res.send(result);
});
});
2条答案
按热度按时间mzmfm0qo1#
我完全重新创建了您的设置(如所述,在客户端代码中添加writeData变量,并在server.js中添加
app.listen(PORT)
),并为我工作,最可能的原因是PORT被定义为8000以外的其他内容,它会事先检查process.env.port,删除它即可修复它。xwbd5t1u2#
基本上,如果你在浏览器中输入url路径,它会显示'get'方法,所以错误出现是单方面的。要测试'post'方法,请使用'form' tag '方法' post ',或者'controller get post'或' postman '。