axios 从Postman删除请求工作,而不是从前端或浏览器

2w3kk1z5  于 2023-10-18  发布在  iOS
关注(0)|答案(2)|浏览(120)

我已经建立了一个简单的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,所以它一定是我的删除函数

ebdffaop

ebdffaop1#

你必须使用正确的URL“家”而不是“家”

`https://localhost:44333/Home/Delete/${property.id}`

如果它仍然不起作用,则尝试从操作中删除[HttpDelete]

xmakbtuz

xmakbtuz2#

我以前没有用过axios,但我发现this可能可以帮助你
也许你可以尝试使用HttpClient,然后像下面这样

http.delete(`https://localhost:44333/Homes/Delete/${property.id}`)

相关问题