axios 在node.js中,post方法连接到get,并出现404错误

wfauudbj  于 2022-11-05  发布在  iOS
关注(0)|答案(2)|浏览(235)

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);
  });
});
mzmfm0qo

mzmfm0qo1#

我完全重新创建了您的设置(如所述,在客户端代码中添加writeData变量,并在server.js中添加app.listen(PORT)),并为我工作,最可能的原因是PORT被定义为8000以外的其他内容,它会事先检查process.env.port,删除它即可修复它。

xwbd5t1u

xwbd5t1u2#

基本上,如果你在浏览器中输入url路径,它会显示'get'方法,所以错误出现是单方面的。要测试'post'方法,请使用'form' tag '方法' post ',或者'controller get post'或' postman '。

相关问题