我正在学习制作MEVN堆栈应用程序的基础知识,在axiosDELETE请求方面遇到一些问题。
问题是,当我用axios发出DELETE请求时,它给出的是Request failed with status code 404
。
请求示例:DELETE http://localhost:9999/item/123
;
检查器中出现完全错误:
XHR DELETE http://localhost:9999/ [HTTP/1.1 404 Not Found 5ms]
Object { message: "Request failed with status code 404",
name: "AxiosError",
code: "ERR_BAD_REQUEST",
config: {…},
request: XMLHttpRequest,
response: {…}, stack: "" }
(* 注意,在错误中我没有item/123
部分,我不知道为什么 *)
我知道,错误404意味着文件/文档没有找到,在大多数情况下,问题是不正确的路径。看来,我还没有最后一个。
到代码
vue js;文件MEVN_testing/src/App.vue
,带有删除请求的部分:
DeleteItem(item) {
axios
.delete(`http://localhost:9999/item/${item.id}`)
.then((res) => {
console.log("DELETE request done...", res.status);
this.UpdateList();
})
.catch((err) => console.log(err));
这里我想用URL模板http://localhost:9999/item/item_id
向服务器发出DELETE请求
快递js;文件MEVN_testing/server/src/routes/routes.js
,删除请求处理程序:
const express = require("express");
const router = express.Router();
const itemModel = require("../models/itemModel.js");
...
router.delete("/:id", (req, res) => {
itemModel.findOneAndDelete({ id: req.params.id });
res.redirect("/");
});
...
module.exports = router;
这里我只想从mongodb数据库中删除具有给定 id 的项目。
快递js;文件MEVN_testing/server/src/index.js
,正在创建应用程序:
const path = require("path");
const express = require("express");
const PORT = 9999;
url = `http://localhost:${PORT}/`;
const urlencodedParser = express.urlencoded({ extended: false });
const app = express();
app.use(express.json());
app.use(urlencodedParser);
// Including build vue app as static files to route /
app.use("/", express.static(path.join(__dirname, "..", "..", "dist")));
// using routes and bind it to route /item
app.use("/item", require("./routes/routes.js"));
console.log(url);
app.listen(PORT);
在最后一个app.use("/item", require("./routes/routes.js"))
中我“包括”了routes.js
文件并定义了该路由的所有路径以/item
地址开始。
什么会导致这个问题?谢谢。
1条答案
按热度按时间brccelvz1#
问题是,我使用的是
res.redirect("/")
。(我想,在这种情况下,应用程序没有从服务器获得响应,这会导致404错误)
解决方案:
将
res.redirect("/")
替换为res.send("some message")