我无法将POST请求提取到我的Express路由器。我有许多GET请求都可以正常工作,但这是我的第一个POST请求,并且无法正常工作。
我的前端代码如下:
@Mapper
public interface ResposeMap {
Loan toLoan(LoanDTO loanDTO);
}
}
响应始终为:
export async function postHamster(name, age) {
try {
await fetch('/hamsters/api/new-hamster',
{
method: 'POST',
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
name: name,
age: age
})
})
console.log("postHamster has run") //LOGGED
}
catch (e) {
console.error(e)
}
我已经对路径进行了三重检查,并且不会出错。后端路径是文件“ hamsters.js”中的“ router.get('api / new-hamster',async(req,res)...”)。
我还将后端函数放在其文件的最顶部,以确保它不会被文件中的任何其他函数所破坏。
这是我的server.js:
fetchData.js:38 POST http://localhost:3000/hamsters/api/new-hamster 404 (Not Found)
我看过这些线程:
Cannot GET/POST with express Router() Express.js routers post request returns 404 Express: router cannot read POST request
答案 0 :(得分:1)
您是否已在控制台的“网络”标签中检查了要发布到的网址?我认为您需要在后端路由的api之前添加/:router.get('/ api / new-hamster',async(req,res)...“。
答案 1 :(得分:0)
你有这个:
server.use(bodyParser.urlencoded({ extended: true }));
取而代之的是:
server.use(bodyParser.urlencoded({ extended: false }));