我已经建立了一个简单的ASP.NET框架MVC应用程序。GET和POST工作正常。然而,当我尝试发出DELETE请求时,它在Postman中工作,但在我的前端(React和Axios)中,我得到了错误404。从浏览器(Chrome/edge)我得到错误404.我认为值得注意的是,这是我的第一个后端。从来没有。我已经浪费了5个小时了。
这是我的控制器代码:
// DELETE: Homes/Delete/5
[HttpDelete]
public async Task<HomeEntity> Delete(int id) {
return await homesManager.DeleteAsync(id);
}
这是我的管理员代码:
public async Task<HomeEntity> DeleteAsync ( int id) {
HomeEntity homeModel = db.Homes.Find(id);
db.Homes.Remove(homeModel);
await db.SaveChangesAsync();
return homeModel;
}
这是我的routeConfig:
public class RouteConfig {
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
这是我从前端的删除请求:
const handlePropertyDelete = async () => {
try {
axios
.delete(`https://localhost:44333/Homes/Delete/${property.id}`)
.then((response) => {
console.log("Property deleted:", response.data);
// Handle success
//Close the delete dialog
onClose();
})
.catch((error) => {
console.error("Error deleting property:", error);
console.error("Error status:", error.response?.status);
console.error("Error data:", error.response?.data);
});
} catch (error) {
console.error("Error:", error);
}
};
错误:(https://i.stack.imgur.com/lAduD.png)
请帮帮我,我从来没有感觉到如此……
我尝试了多种格式的axios请求,获取请求,在不同的浏览器上发出请求。我不明白为什么DELETE不能在POST和GET的时候工作。而DELETE在Postman上的作用来自同一个URL,所以它一定是我的删除函数
2条答案
按热度按时间ebdffaop1#
你必须使用正确的URL“家”而不是“家”
如果它仍然不起作用,则尝试从操作中删除[HttpDelete]
xmakbtuz2#
我以前没有用过
axios
,但我发现this可能可以帮助你也许你可以尝试使用
HttpClient
,然后像下面这样